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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Немогу понять какую команду надо использовать и какие кавычки ставить
wmz38
Отправлено: 09 Ноября, 2007 - 13:17:45
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




Здварствуйте.
Мне нужно сделать выборку из базы, при этом записи в колонке имеют чтото общее а чтото разное - например:
Цитата:
К-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
--------------------------------
Заранее спасибо
 
 Top
EuGen Администратор
Отправлено: 09 Ноября, 2007 - 16:19:23
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM table WHERE column LIKE "%02Х%" OR column LIKE "%03Т%";
  3.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 09 Ноября, 2007 - 16:41:51
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




Выводит результат по
Цитата:
02Х

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

03Т

даже не обрабатывается
 
 Top
EuGen Администратор
Отправлено: 09 Ноября, 2007 - 17:00:56
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Я в запросе все буквы указывал на английском вроде. Может быть, (в случае, если Вы копировали мой запрос) это проблема из-за похожести начертаний английских и русских букв "С" и "Т".
Запрос элементарен, на всякий случай я его проверил, работает правильно.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
wmz38
Отправлено: 09 Ноября, 2007 - 17:18:27
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




Я ваш запрос не копировал, в мускуле я неплохо, для себя, разбираюсь.
Базовый уровень повыше чем в ПХП будет.
Фишка вот вчем может быть. У меня в базе все в Кириллице (С, Т, Х, Ц) - но по идее это вообще никак не должно влиять на запрос. Така как кое где есть выборка с участием команды

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



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

Без кавычек запрос не проходил, окружил кавычками table и column - сработало!
 
 Top
evgenijj
Отправлено: 09 Ноября, 2007 - 18:38:27
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




TABLE И COLUMN - ключевые слова, поэтому MySQL и ругался. А говоришь, в MySQL разбираешься.
 
 Top
wmz38
Отправлено: 12 Ноября, 2007 - 10:22:08
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




evgenijj, но ведь запросы в некоторых случаях обрабатываются и без косых кавычек. это не мой косяк,а просто куча вариантов с перебором, пока не сработает. в правильности никто и не сомневался и прежде чем писать на форуме я проверил,как мне показалось, все - результат такой: мне написали то что я и так знал. После неудачи с запросом я подумал "а может есть команда по типа LIKE" вот и написал тут. Извините конечно, в следущий раз наверно мне не стоит ничего писать.

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



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




wmz38 пишет:
evgenijj, но ведь запросы в некоторых случаях обрабатываются и без косых кавычек.

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

SELECT `column` FROM `table` WHERE ...
 
 Top
wmz38
Отправлено: 14 Ноября, 2007 - 09:08:41
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


Помог: 0 раз(а)




=) мы не поняли друг друга.
Я и не использовал в скрипте такие названия полей и таблиц, у меня таблица=goods, а поле=artikul - то что я тут постил, было чисто символическим. Но за объяснение всеравно спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB