Как использовать как функцию в наборе данных в MySQL? - PullRequest
0 голосов
/ 09 января 2011

Есть ли способ, как я могу использовать как функцию в наборе данных? Я старался выберите * из таблицы1, где столбец1 похож («% 1%», «% 2%», «% 3%», «% 4%»); но это не сработало.

мой сценарий состоит из 2 операторов выбора, таких как select * from class1, где firstname in (выберите имя из class2, где firstname = 'greg');

но вместо того, чтобы иметь class1.firstname = class2.firstname, я хотел, чтобы это было class1.firstname, подобное concat ('%', class2.firstname, '%');

Ответы [ 4 ]

1 голос
/ 09 января 2011

Вы можете "ИЛИ" их:

... WHERE (column1 like '%1%') OR (column1 like '%2%') OR ...
0 голосов
/ 09 января 2011

Вы можете использовать execute для построения динамического SQL, но вы должны остерегаться проблем безопасности и производительности, которые могут возникнуть.

Другой вариант использует regex

0 голосов
/ 09 января 2011

Обычно вы используете функцию IN, когда у вас есть список строк для сравнения. Но здесь вам нужна комбинация LIKE и IN, и, насколько я знаю, в SQL нет функции, которая делает это, поэтому вам нужно будет использовать оператор OR.

0 голосов
/ 09 января 2011

вроде принимает один аргумент

select * 
from table1 
where column1 like ('%1%'); 

, если вы хотите проверить множество, используйте операторы OR или UNION

select * 
from table1 
where column1 like ('%1%')
or column1 like ('%2%'); 
...