以下查询没有结果:
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
结果:
我的查询没有选择字段中的内容是什么?我应该使用什么查询?
最佳答案
默认情况下,TRIM()
只删除空格。该字段可以包含其他空格(如制表符或换行符)或其他非打印字符。要查看字段内容的二进制编码,可以使用:
SELECT HEX(interest) FROM personal_interest WHERE id = 19496
从结果中可以看到,您的字段包含
0x0d
,这是一个carriage return字符。要选择所有为空或只包含空白字符的记录,可以使用regular expression:SELECT * FROM personal_interest WHERE interest RLIKE '^[[:space:]]*$'
关于mysql - 现场不可见数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14287520/