SQL: используя LIKE, вернуть строку, если поиск соответствует какому-либо значению в этой строке - PullRequest
1 голос
/ 18 июля 2011

Я пытаюсь сделать запрос, где мой LIKE может соответствовать любому полю в строке.

Другими словами, я не хочу явно задавать имена столбцов для соответствия каждому условию LIKE.

Итак, вот так:

SELECT * FROM mytable WHERE any_field_value LIKE 'str%'

НЕ как это:

SELECT * FROM mytable WHERE col_a LIKE 'str%' OR col_b LIKE 'str%'

и т. Д.

Конечно, не редкий запрос? Может кто-нибудь показать мне свет?

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

На самом деле это просто неправда.Это можно сделать, если вы настроили полнотекстовое индексирование.Еще раз, предполагая, что мы имеем дело с сервером sql.

http://msdn.microsoft.com/en-us/library/ms142488.aspx

Я должен отметить, поскольку в связанном документе не очень ясно, что вы можете указать * скореечем имена столбцов, чтобы искать все полнотекстовые индексированные столбцы в таблице.

РЕДАКТИРОВАТЬ: Полнотекстовый поиск также доступен в MySQLМне не ясно, можно ли * использовать с ним, хотя.

1 голос
/ 18 июля 2011

Может быть сделано только с использованием динамического SQL (если не используется полнотекстовая индексация).

Прежде чем сделать это, я предлагаю прочитать: Проклятие и благословения динамического SQL (при условии, что SQL Server)

...