Помогите составить запрос
SELECT `id` FROM `table` WHERE `cat` LIKE '%$string%'
В ячейке cat могут быть значения 1, 2, 3... и all
Если $string = "all", нужно выбрать все записи(с этим проблем нет)
А если $string = 1, то нужно выбрать записи, где есть 1 и есть all
ЗЫ: да, нужно именно с использованием LIKE
Спустя 5 минут, 33 секунды (13.12.2011 - 15:07) Winston написал(а):
А так нельзя написать ?
SELECT `id` FROM `table` WHERE `cat` LIKE '%$string%' OR `cat` LIKE '%$string2%'
Спустя 9 минут, 11 секунд (13.12.2011 - 15:16) rooor написал(а):
Winston
Можно =) Только я не дописал запрос там ещё AND есть...
Если так, то не работает:
Можно =) Только я не дописал запрос там ещё AND есть...
SELECT `id` FROM `table` WHERE `cat` LIKE '%$string%' AND `cat2` = 5
Если так, то не работает:
SELECT `id` FROM `table` WHERE `cat` LIKE '%$string%' AND `cat2` = 5 OR LIKE '%$string2%' AND `cat2` = 5
Спустя 2 минуты, 48 секунд (13.12.2011 - 15:19) Winston написал(а):
А если так объединить ?
SELECT `id` FROM `table` WHERE (`cat` LIKE '%$string%' AND `cat2` = 5) OR (`cat` LIKE '%$string2%' AND `cat2` = 5)
Спустя 1 минута (13.12.2011 - 15:20) ИНСИ написал(а):
SELECT `id` FROM `table` WHERE (`cat` LIKE '%$string%' OR `cat` LIKE '%$string2%') AND `cat2` = 5
Спустя 4 минуты, 24 секунды (13.12.2011 - 15:25) rooor написал(а):
О! Благодарю)) не додумался, соображалка не варит уже)
Спустя 9 минут, 33 секунды (13.12.2011 - 15:34) rooor написал(а):
Так... похоже я рано обрадовался...
Этот запрос вытащит только или то или другое, а мне надо оба...
Этот запрос вытащит только или то или другое, а мне надо оба...
Спустя 9 минут, 2 секунды (13.12.2011 - 15:43) rooor написал(а):
Таблица
id | cat
1 | 1
2 | 2
3 | all
4 | 5
5 | all
6 | 2
Если ищем, например 2, должно вывести id 2, id 3, id 5, id 6
id | cat
1 | 1
2 | 2
3 | all
4 | 5
5 | all
6 | 2
Если ищем, например 2, должно вывести id 2, id 3, id 5, id 6
Спустя 8 минут, 37 секунд (13.12.2011 - 15:52) Winston написал(а):
Цитата (rooor @ 13.12.2011 - 14:34) |
Этот запрос вытащит только или то или другое, |
Как это? Не может быть...
Спустя 23 секунды (13.12.2011 - 15:52) killer8080 написал(а):
rooor
а нафига там вообще like?
а нафига там вообще like?
SELECT `id` FROM `table` WHERE `cat` = 'all' OR `cat` = 2
Спустя 1 минута, 21 секунда (13.12.2011 - 15:54) rooor написал(а):
killer8080
Нужен. Я не просто так это написал в первом посте)
Нужен. Я не просто так это написал в первом посте)
Спустя 4 секунды (13.12.2011 - 15:54) Winston написал(а):
Может беда в использовании AND cat2 = 5 ??
Спустя 24 минуты, 20 секунд (13.12.2011 - 16:18) ИНСИ написал(а):
$query = ($string != 'all' ? " AND (`cat` = ".(int)$string." OR `cat` = 'all')" : '');
"SELECT `id` FROM `table` WHERE `cat2` = 5 {$query}"
Спустя 8 минут, 35 секунд (13.12.2011 - 16:27) rooor написал(а):
INSIDIOUS
Нужно именно с использованием LIKE, в ячейке, в которой ищем, находятся не только цифры, а последовательность данных, что-то типа xfields в DLE
Нужно именно с использованием LIKE, в ячейке, в которой ищем, находятся не только цифры, а последовательность данных, что-то типа xfields в DLE
Спустя 6 минут, 6 секунд (13.12.2011 - 16:33) ИНСИ написал(а):
rooor тогда измени на LIKE. К примеру так:
$query = ($string != 'all' ? " AND (`cat` LIKE '%{$string}%' OR `cat` LIKE '%all%')" : '');
Спустя 1 минута, 15 секунд (13.12.2011 - 16:34) dadli написал(а):
rooor
а в ячеике cat2 толко цифри есть ?
а в ячеике cat2 толко цифри есть ?
Спустя 40 минут, 6 секунд (13.12.2011 - 17:14) rooor написал(а):
Отдыхать нужно, товарищи! ))
Пришёл с работы, перекусил, отвлекся немного... и посмотрел на то, что я пишу
Спасибо Вам большое. Примеры рабочие.
Пришёл с работы, перекусил, отвлекся немного... и посмотрел на то, что я пишу
Спасибо Вам большое. Примеры рабочие.
Спустя 10 минут, 39 секунд (13.12.2011 - 17:25) ИНСИ написал(а):
rooor самое интересно - какой пример-то ты использовал?
Спустя 8 минут, 16 секунд (13.12.2011 - 17:33) rooor написал(а):
INSIDIOUS
Ошибку я нашёл, когда использовал твой последний пример, поэтому его и оставил. И он соответствует всем условиям - если не равно то так, иначе - по-другому =)
Но для меня, как для начинающего, наглядней пример Winston'a
Ошибку я нашёл, когда использовал твой последний пример, поэтому его и оставил. И он соответствует всем условиям - если не равно то так, иначе - по-другому =)
Но для меня, как для начинающего, наглядней пример Winston'a