
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 1578 Пользователь №: 29109 На форуме: Карма: 80 ![]() |
Здравствуйте.
Помогите составить запрос SELECT `id` FROM `table` WHERE `cat` LIKE '%$string%' В ячейке cat могут быть значения 1, 2, 3... и 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 есть... 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 Спустя 8 минут, 37 секунд (13.12.2011 - 15:52) Winston написал(а):
Как это? ![]() Спустя 23 секунды (13.12.2011 - 15:52) killer8080 написал(а): rooor а нафига там вообще 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 Спустя 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 толко цифри есть ? Спустя 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 |
||
![]() |
![]() ![]() ![]() |