Mysql查找具有最长字段值的行作为文本的开头

时间:2016-07-29 16:16:04

标签: mysql sql mariadb

我在mysql表中有这样的东西。

ID  Text
1   a
2   b
3   a-b
4   b-a
5   a-b-c
6   a-b-d

通常你搜索一个列中的文本,我只想要相反,我想要一个查询来搜索文本中的所有列。我不知道是否有可能。

  

如果文字是" a-b-f "它必须返回ID为 3 的查询(" a-b")

     

如果文字是" a-c "它必须返回ID 1 (" a")

的查询      

如果文字是" b-a "它必须返回ID 2 (" b")

的查询      

如果文字是" b-b "它必须返回ID 2 (" b")

的查询      

如果文字是" a-b-c-d-e-f "它必须返回ID 5 的查询(" a-b-c")

     

如果文字是" c-a-a "它必须返回查询

感谢您的帮助。

PD:我正在寻找类似的东西,但我找到的所有方法都是在列值中搜索文本,这与我说的相反。

1 个答案:

答案 0 :(得分:2)

可以像

一样使用
 select ID from my_table  
 where  'your_text_seach'   like   concat ( text, '%')
 order by length(text) desc
 limit 1