2

以下查询没有结果:

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

有这些结果:

phpMyAdmin 截图

// 编辑:

SELECT HEX(interest) FROM personal_interest WHERE id = 19496

结果:

phpMyAdmin 截图 2

我的查询没有选择它的字段中可能有什么?我应该使用什么查询?

4

1 回答 1

3

默认情况下,TRIM()仅删除空格。该字段可以包含其他空格(例如制表符或换行符)或其他非打印字符。要查看字段内容的二进制编码,您可以使用:

SELECT HEX(interest) FROM personal_interest WHERE id = 19496

从结果中可以看出,您的字段包含0x0d,这是一个回车符。要选择所有空白或仅包含空格字符的记录,您可以使用正则表达式

SELECT * FROM personal_interest WHERE interest RLIKE '^[[:space:]]*$'
于 2013-01-11T22:18:34.380 回答