Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Поиск WHERE LIKE по всем полям таблицы (Ruskar) 15/03/2009 - 10:29:44
      Re: Поиск WHERE LIKE по всем полям таблицы (Ruskar) 15/03/2009 - 11:04:16
      Re: Поиск WHERE LIKE по всем полям таблицы (Diter) 15/03/2009 - 11:12:37
      Re: Поиск WHERE LIKE по всем полям таблицы (Ваня) 23/10/2009 - 00:39:15

> Original message text:
> From: Ruskar - 15/03/2009 - 10:29:44
> Subject:Поиск WHERE LIKE по всем полям таблицы
> -----------------
> Мне нужно осуществить поиск по всем полям таблицы базы данных примерно так:
>
> SELECT * FROM table WHERE * LIKE '%search%';
>
> Как правильно мне сформировать запрос, чтобы получить желаемое? Количество полей, их имена, тип заранее неизвестны, нужно просто найти все строки таблиц, содержащие искомое слово. Третий день уже копаю эту тему в интернете, так ничего толкового и не нашёл.
>


From: Diter - 15/03/2009 - 11:12:37
Subject:Поиск WHERE LIKE по всем полям таблицы
-----------------
А обязательно нужно сформировать один запрос?

Я бы так сделал:

1) получить именя столбцов таблицы:
SHOW columns FROM table

Запрос выдаст таблицу, где каждая строка имеет такой вид:
Field, Type, Null, Key, Default, Extra

Вот 'Field' содержит название столбца, 'Type' - тип столбца. Выбираем только те столбцы, типа которых нам подходит для поиска (varchar, text и т.д.)

2) средствами языка, который используется в связке с MySQL (php,perl,...) формируем окончательный запрос:

(SELECT * FROM table WHERE `c1`=LIKE '%search%')
UNION
(SELECT * FROM table WHERE `c2`=LIKE '%search%')
UNION
...
UNION
(SELECT * FROM table WHERE `cN`=LIKE '%search%')

где c1,...,cN - имена наших столбцов

Вот как-то так.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36369



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |