我有一个数据库表,其中包含同一列中的印地语和英语的问题,但是用关键字[en]英语[en:]和[hi] hindi语言[hi:]分隔,其中一些没有分开按语言标签
我想只选择在mysql中有[en] [en:]和[hi] [hi:]标签的问题
答案 0 :(得分:3)
Select * from table_name
where question like '%[en]%' or
question like '%[en:]%' or
question like '%[hi]%' or
question like '%[hi:]%'
如果开始标记的格式为'[en]'
且结束标记的格式为'[en:]'
,那么
Select * from table_name
where question like '%[en]%[en:]' or
question like '%[hi]%[hi:]'
答案 1 :(得分:2)
Select *
From mytable
Where mycolumn like '%[en]%[en:]%'
and mycolumn like '%[hi]%[hi:]%'
请注意,此查询的性能不是很高,但这是您未正常化数据库所能获得的。
您可以使用正则表达式匹配,以确保无法找到'标记'包含其他标签,如[en] foo [hi] bar [en:],但这会使性能更差。
答案 2 :(得分:0)
添加另一列eq枚举类型EN => [Y,N] HI [Y,N],您可以像其他问题一样使用查询来更新数据库。所以每次使用像搜索一样更优化
答案 3 :(得分:0)
我发现这个工作
Select * from table_name
where question like '%en%'