Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запрос в БД по подобию LIKE, только для НЕ одного значения
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Запрос в БД по подобию LIKE, только для НЕ одного значения

Страниц (1): [1]
 

1. wmz38 - 09 Ноября, 2007 - 13:17:45 - перейти к сообщению
Здварствуйте.
Мне нужно сделать выборку из базы, при этом записи в колонке имеют чтото общее а чтото разное - например:
Цитата:
К-02Х, С-02ГТ, Г-2002Х, С-02Х, К-03Т, С-03Т, К-03ГТ,... идт итп

и аналогичных записей куча(1300 и более позиций)...
а мне надо выбрать следующее :
Цитата:
К-02Х, С-02Х, К-03Т, С-03Т, итд

но писать запрос с перечислением около 1000 позиций нет смысла.
В Мускуле есть одна хорошая команда
PHP:
скопировать код в буфер обмена
  1. SELECT * FROM table WHERE column LIKE "%02Х%";

и мне выдадут следующее:
Цитата:
К-02Х, С-02Х

проблема команды LIKE в том что указано может быть ТОЛЬКО одно значение, и перечисление тут не работает
================================ ===================
Вопрос: как сделать так чтобы я мог указать список по типа "%02Х%", "%03Т%" и получить результат аналогичный результату, полученному с помощью комманды LIKE
--------------------------------
Заранее спасибо
2. EuGen - 09 Ноября, 2007 - 16:19:23 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM table WHERE column LIKE "%02Х%" OR column LIKE "%03Т%";
  3.  
3. wmz38 - 09 Ноября, 2007 - 16:41:51 - перейти к сообщению
Выводит результат по
Цитата:
02Х

->
Цитата:
К-02Х, С-02Х
\n\n(Добавление)
а
Цитата:

03Т

даже не обрабатывается
4. EuGen - 09 Ноября, 2007 - 17:00:56 - перейти к сообщению
Я в запросе все буквы указывал на английском вроде. Может быть, (в случае, если Вы копировали мой запрос) это проблема из-за похожести начертаний английских и русских букв "С" и "Т".
Запрос элементарен, на всякий случай я его проверил, работает правильно.
5. wmz38 - 09 Ноября, 2007 - 17:18:27 - перейти к сообщению
Я ваш запрос не копировал, в мускуле я неплохо, для себя, разбираюсь.
Базовый уровень повыше чем в ПХП будет.
Фишка вот вчем может быть. У меня в базе все в Кириллице (С, Т, Х, Ц) - но по идее это вообще никак не должно влиять на запрос. Така как кое где есть выборка с участием команды

Просто чертовщина (хостинг на Агаве, мускуль версии 4.1.2.2) - попробую как сделать по иной колонке выборку\n\n(Добавление)



Ура, получилось!
Только одного не пойму - я делал все тоже самое!
Итак небольшой вывод
синтаксис всеже должен быть таким:
PHP:
скопировать код в буфер обмена
  1.  
  2. SELECT*FROM `table` WHERE `column` LIKE "%что_угодно%" OR `column` LIKE "%абсолютно_все%"
  3.  

Без кавычек запрос не проходил, окружил кавычками table и column - сработало!
6. evgenijj - 09 Ноября, 2007 - 18:38:27 - перейти к сообщению
TABLE И COLUMN - ключевые слова, поэтому MySQL и ругался. А говоришь, в MySQL разбираешься.
7. wmz38 - 12 Ноября, 2007 - 10:22:08 - перейти к сообщению
evgenijj, но ведь запросы в некоторых случаях обрабатываются и без косых кавычек. это не мой косяк,а просто куча вариантов с перебором, пока не сработает. в правильности никто и не сомневался и прежде чем писать на форуме я проверил,как мне показалось, все - результат такой: мне написали то что я и так знал. После неудачи с запросом я подумал "а может есть команда по типа LIKE" вот и написал тут. Извините конечно, в следущий раз наверно мне не стоит ничего писать.

Товарищи - я пришел сюда не ругаться и выяснять кто круче - я пришел за советами и поддержкой, и как бы все банально не было - очень хотелось бы получить то за чем я пришел.
8. evgenijj - 12 Ноября, 2007 - 10:28:04 - перейти к сообщению
wmz38 пишет:
evgenijj, но ведь запросы в некоторых случаях обрабатываются и без косых кавычек.

TABLE И COLUMN - ключевые слова, использовать их в качестве имен таблиц и полей нельзя. Но если очень хочется -- то можно, только надо их заключать в кавычки, чтобы MySQL знал, что это имя поля, а не ключевое слово

SELECT `column` FROM `table` WHERE ...
9. wmz38 - 14 Ноября, 2007 - 09:08:41 - перейти к сообщению
=) мы не поняли друг друга.
Я и не использовал в скрипте такие названия полей и таблиц, у меня таблица=goods, а поле=artikul - то что я тут постил, было чисто символическим. Но за объяснение всеравно спасибо.

 

Powered by ExBB FM 1.0 RC1