我正在执行sql查询。
我的桌子
__________________________
| col1 |
---------------------------
| data for hello user |
| data |
-----------------------------
当我执行查询
时Select *
from table
where col1 like '%data for hello user admin%'
它没有提供数据
我的表格包含数据data for hello user
,但我想要使用data for hello user admin
它还为我提供了与data for hello user
相同的数据。
这是可能的,我该怎么做。
答案 0 :(得分:0)
如果您想要两个行,请执行select * form table where col1 like 'data%'
如果您希望查询在字符串为data for hello user admin
时返回两行,则无法进行,因为LIKE
仅适用于一个方向:从输入字符串到所有行,而不是反过来说。
如果你想要的是找到第一个匹配项,那么你需要继续从输入字符串中删除单词,直到找到匹配项:
data for hello user admin%
- >没有比赛
data for hello user%
- >一场比赛
data for%
- >一场比赛
data%
- >两场比赛
答案 1 :(得分:0)
您可以使用substr获取col1包含的确切长度
select * form `table` where `col1` like CONCAT( SUBSTRING( 'data for hello user admin', 0, LENGTH( `col1` ) -1 ) , '%' )