ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

14.11.2009, 21:12
|
|
Познающий
Регистрация: 20.02.2008
Сообщений: 82
Провел на форуме: 107625
Репутация:
2
|
|
Народ, есть запрос:
"SELECT `id`,`cena_bannera`,`date_cena` FROM `puppy_users` WHERE `my_porodki` like '%" . $pord . "%' AND `act_bannera` = 1 ORDER BY `cena_bannera` DESC,`date_cena` ASC"
Можно ли изменить запрос так, что бы он при выборе строк смотрел, что за `id`, если оно равно, например, 10, то к результату `cena_bannera` прибавлял бы, например, 5 ( прибавлял бы к результату, а не делал UPDATE поля!!!) и, естественно, сортировал бы результат (т.е. ORDER BY `cena_bannera` DESC) с учётом изменённого `cena_bannera`?
P.S. Знаю, есть в MySQL IF(), но каким боком его там заюзать...
Последний раз редактировалось Architek86; 14.11.2009 в 21:14..
|
|
|

14.11.2009, 21:33
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
|
|
|

14.11.2009, 21:45
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Код:
"SELECT `id`,if(`id` = 10, `cena_bannera` + 5, `cena_bannera`) as `cb`,
`date_cena`
FROM `puppy_users`
WHERE `my_porodki` like '%" . $pord . "%'
AND `act_bannera` = 1
ORDER BY `cb` DESC,`date_cena` ASC"
|
|
|

17.11.2009, 01:13
|
|
Новичок
Регистрация: 25.09.2008
Сообщений: 28
Провел на форуме: 144800
Репутация:
9
|
|
PHP код:
$one = mysql_qurey("SELECT * FROM user WHERE id=1 LIMIT 1",$connect);
$name1=mysql_fetch_array($one);
echo $name1[name];
PHP код:
$one = mysql_query("SELECT name FROM user WHERE id=1 LIMIT 1",$connect);
$name2=mysql_fetch_array($one);
echo $name2[name];
по идее второй код занимает меньше памяти? или нет смысла выбирать столбцы только те которые нужны?
|
|
|

17.11.2009, 01:27
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
думаю есть смысл, и дело скорее не в памяти, а скорости sql-запроса + нагрузка на БД
тем более если в итоге нужно только name выцепить
|
|
|

17.11.2009, 09:45
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Всегда стараюсь выцепить только те колонки, которые действительно нужны. Имхо не слишком целесообразно брать все 30 полей из таблицы, если нужно на самом деле одно-два-три
|
|
|

17.11.2009, 10:32
|
|
Познающий
Регистрация: 03.03.2009
Сообщений: 86
Провел на форуме: 994199
Репутация:
258
|
|
Сообщение от felix_
PHP код:
$one = mysql_qurey("SELECT * FROM user WHERE id=1 LIMIT 1",$connect);
$name1=mysql_fetch_array($one);
echo $name1[name];
PHP код:
$one = mysql_query("SELECT name FROM user WHERE id=1 LIMIT 1",$connect);
$name2=mysql_fetch_array($one);
echo $name2[name];
по идее второй код занимает меньше памяти? или нет смысла выбирать столбцы только те которые нужны?
Раз уж задумался о памяти, было бы разумнее использовать mysql_fetch_assoc, не забивая память
|
|
|

21.11.2009, 10:33
|
|
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме: 448388
Репутация:
31
|
|
Здравствуйте!
В таблице keywords записаны следующий строки:
i want buy moto
i want buy new auto
want i buy motocycle
buy want i new moto
Строка-поиск: i want buy
Возможно ли запросом выбрать все строки, в которых присутствуют слова из исходной строки поиска?
Обычным
PHP код:
SELECT * FROM keywords WHERE string LIKE '%i want buy%'
не обойтись, т.к. вернуться только первые две строки, мне нужно вернуть все. Это возможно? Если возможно то как?
Заранее благодарен!
Последний раз редактировалось OnArs; 21.11.2009 в 10:37..
|
|
|

21.11.2009, 12:46
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Попробуйте как-нить так
Код:
string RLIKE '(^| )i( |$)'
AND string RLIKE '(^| )want( |$)'
AND string RLIKE '(^| )buy( |$)'
|
|
|

21.11.2009, 22:54
|
|
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
Провел на форуме: 448388
Репутация:
31
|
|
Ещё раз здравствуйте!
В таблице строки:
id string
1 я строчкоо
2 я строчкоо
1 я строчкоо
5 я строчкоо
9 я строчкоо
19 я строчкоо
21 я строчкоо
Нужно получить НОМЕР строки в таблице, т.е. для строки с id = 5 запрос должен вернуть 4
Возможно ли это? Если да, то как будет выглядеть запрос или в какую сторону копать?
Заранее благодарен! 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|