以下查询没有结果:
SELECT * FROM `personal_interest` WHERE LENGTH(`interest`) = 0
SELECT * FROM `personal_interest` WHERE TRIM(`interest`) = ''
SELECT * FROM `personal_interest` WHERE `interest` = ''
然而这个查询
SELECT * FROM `personal_interest` WHERE person = 380298
有以下结果:
//编辑:
SELECT HEX(interest) FROM personal_interest WHERE id = 19496
结果:
我的查询没有选择它的字段是什么?我应该使用什么查询?
答案 0 :(得分:3)
默认情况下,TRIM()
仅删除空格。该字段可以包含其他空格(例如制表符或换行符)或其他非打印字符。要查看字段内容的二进制编码,您可以使用:
SELECT HEX(interest) FROM personal_interest WHERE id = 19496
从结果中可以看出,您的字段包含0x0d
,这是一个carriage return字符。要选择所有空白或仅包含空白字符的记录,您可以使用regular expression:
SELECT * FROM personal_interest WHERE interest RLIKE '^[[:space:]]*$'