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 字符串/文本数据那样提取其他记录。
请帮忙。
答案 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