如何在数据库字段中找到确切的字符串

时间:2015-01-16 10:27:20

标签: php mysql

id      hosp_id    provider_settings                               
1       50411      {"e-invoice":"0"}                                    
2       129        {"e-invoice":"0","Document GroupId":"**test**"}           
3       50411      {"e-invoice":"0","Document GroupId":"**testtt**"}        
4       50360      {"e-invoice":"0","Document GroupId":"**yryyyy**"}  

这是我的表结构。

我想在“ provider_settings ”字段中完全匹配“测试”字符串/文字,并根据测试字符串记录提取。< / p>

但是如果我们搜索测试字符串/文本,则不应该像 testtt 字符串/文本数据那样提取其他记录。

请帮忙。

3 个答案:

答案 0 :(得分:1)

如果你查找“test”并且它是你的数据库中放置的json或其他字符串的一部分,还有其他方法可以在没有LIKE的情况下找到它。

此外,如果您没有此字符串的任何特殊结构,则无法仅获得测试(不是testtt或类似的)

但是,如果你的结构总是像 - &gt; ** ** 然后用那些*很好地开始和结束你正在寻找的东西来寻找它。

从table_name中选择*,其中provider_settings LIKE'%** test **%'

答案 1 :(得分:0)

如果你的意思是完全相同的字符串,即区分大小写的匹配使用BINARY

SELECT * FROM table_name WHERE BINARY column_name = 'test'

替换table_name和column_name以满足您的需求

答案 2 :(得分:0)

您可以使用此查询

SELECT * 
FROM v2_statement_provider_api_rel
WHERE FIND_IN_SET('test', REPLACE( REPLACE( REPLACE( REPLACE( provider_settings,  '}',  ',' ) ,  ':',  ',' ) ,  '{',  ',' ) ,  '"',  ',' ) ) >0