|
|
|
| Подскажите, почему не выполняется запрос к базе?
SELECT id, Name FROM Table WHERE tel=1 AND CONCAT(',',text,',') LIKE '%,Текст,%' OR CONCAT(',',text,',') LIKE '%,Текст2,%' OR CONCAT(',',text,',') LIKE '%,Текст3,%' OR CONCAT(',',text,',') LIKE '%,Текст4,%' AND CONCAT(',',clt,',') LIKE '%,8,%' AND CONCAT(' ',ret,' ') LIKE '% 3 %' ORDER BY pol DES
|
поле tex содержит текстовый тип и занесены слова Текст1,Текст2 и т.д. через запятую...нужно выбрать те строки, где эти слова имеются!
без этого условия CONCAT(',',text,',') LIKE '%,Текст,%' OR CONCAT(',',text,',') LIKE '%,Текст2,%' OR CONCAT(',',text,',') LIKE '%,Текст3,%' OR CONCAT(',',text,',') LIKE '%,Текст4,%' запрос выполняется, а с ним не выполняется все условие WHERE...почему не срабатывает CONCAT(',',text,',') LIKE '%,Текст,%' ? | |
|
|
|
|
|
|
|
для: xpom
(28.06.2011 в 21:34)
| | Запрос просто не возвращает записи или возникает ошибка?
PS Дело в том что text - это ключевое слово, его бы хорошо заключить в обратные кавычки. | |
|
|
|
|
|
|
|
для: cheops
(28.06.2011 в 21:46)
| | запрос возвращает записи, но все, не учитывая условия WHERE ...а нужно, только если хоть одно слово Текст совпадает
т.е. с кавычками будет выглядеть вот так ?
CONCAT(',','text',',') LIKE '%,'Текст',%'
|
| |
|
|
|
|
|
|
|
для: xpom
(28.06.2011 в 21:56)
| | Здесь что то с OR
нужно любое совпадение в поле text, а выводится все | |
|
|
|
|
|
|
|
для: xpom
(28.06.2011 в 21:56)
| | что можно использовать вместо OR (или) в MySQL? | |
|
|
|
|
|
|
|
для: xpom
(28.06.2011 в 21:56)
| | Хм... возможно для каждой строки срабатывает какое-то свое условие... | |
|
|
|
|
|
|
|
для: cheops
(29.06.2011 в 19:18)
| | наверное нужно расставить скобки, чтобы выполнялось OR и AND отдельно | |
|
|
|
|