Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Как применить LIKE в запросе


Автор: Гость_Олег 10.1.2005, 09:47
Мне нужно отобрать всё по условию.
Пример:
Поле "блюдо"
В этой колонке
- Салат Европейский
- Салат Гамбургский
- Салат домашний
Мне нужно выбрать всё где есть слово 'салат'.
Вот как я это делаю.
db.OpenRecordset("SELECT Klient.id, Klient.блюдо FROM Klient WHERE (((Klient.блюдо) LIKE '%салат%'))") - не работает

Подскажите как правильно!

Автор: Cetus 10.1.2005, 10:57
если у тебя названия всех салатов начинаются со слова 'салат' то в LIKE напиши 'салат%'

или на крайний случай
Field LIKE 'салат%' or Field LIKE '%салат'

Автор: Kesh 10.1.2005, 13:13
Используй такие функции, как UPPER и LOWER ... Обрати внимание, что слова "Салат", "салат" и "САЛАТ" для базы данных - разные слова...

Автор: sergejzr 10.1.2005, 13:13
Олег, вроде там проблема в мускуле с кириллицей...

И вот, посмотри ещё
http://forum.vingrad.ru/index.php?showtopic=35771&hl=like

Автор: Kesh 10.1.2005, 13:14
Цитата(sergej @ 10.1.2005, 14:13)
вроде там проблема в мускуле с кириллицей

Точно... и обрати внимание на дефолтовую кодировку...

Автор: Гость_Олег 10.1.2005, 18:09
Я разобрался нужно вместо '%салат%' ставить '*салат*', так работает

Автор: Kesh 11.1.2005, 13:10
Цитата
нужно вместо '%салат%' ставить '*салат*'

Странно, насколько я знаю стандарт ANSI SQL должно быть именно '%салат%'

Автор: Medved 11.1.2005, 13:57
Цитата
Я разобрался нужно вместо '%салат%' ставить '*салат*', так работает


Странно... первый раз такое вижу.

Автор: Kesh 11.1.2005, 16:50
Интересно, а что это такое за средство программирования, которое раставляет так изменять SQL...

Автор: Mal Hack 11.1.2005, 16:57
Может это специфика СУБД???

Автор: <Spawn> 11.1.2005, 20:29
Когда я работал с MySQL, то у меня все прекрасно было с %. Возможно, как это уже сказали выше, дело в кодировке.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)