这有点过分了,但我找不到适用于这种特殊情况的任何东西。
我试图通过Mysql查询找到结果,其中db中的项是字符串的一个字母。例如,我有字符串'MYSQL',我需要使用标识符M或标识符Q来检索数据库中的所有内容。
所以db看起来像这样
name identifier
item1 M
item2 Q
item3 B
我希望搜索'MYSQL'以返回item1和item2。
一个LIKE不起作用,所以我尝试了一个WHERE IN,但除非我格式化'M','Y','S'等文本,否则它不起作用
这是不可能的,但我觉得有一种更有说服力的方式来做到这一点。提前谢谢。
答案 0 :(得分:0)
使用REGEXP。
如果使用单个字符标识符创建正则表达式,则可以将其与所需的单词匹配。例如:
select * from TABLENAME
where 'MySQL' REGEXP concat('.*', identifier, '.*');
这将获得带有'M'和'Q'的行,但不会带有'B'的行。
答案 1 :(得分:0)
你可能正在倒退。
在Oracle风格的语法中,您使用:WHERE 'MYSQL' LIKE UPPER('%' || identifier_col || '%')
其中||
是字符串连接,%
是通配符。
答案 2 :(得分:0)
为什么不能使用字符串连接和LIKE
运算符?
SELECT name FROM table_identifiers
WHERE UCASE('MYSQL') LIKE UCASE(CONCAT('%', identifier, '%'))
答案 3 :(得分:0)
您可以使用此字符串函数
SELECT * FROM table_name WHERE LOCATE(identifier, "mysql")>0