WHERE NOT正则表达式的奇怪行为

时间:2014-02-21 09:20:08

标签: php mysql regex json

我遇到以下MySQL查询的问题:

SELECT * FROM `anytable` WHERE NOT (anyColumn regexp '.smf.')

我总共有656行。我使用WHERE(没有NOT)得到一个空结果,但是NOT我只得到40个结果,而不是整个656结果...

在另一栏(其中有一些积极的结果),它正在使用7找到,649找不到。

附录

我在MySQL数据库中存储json_encode个PHP关联数组。数据库中的示例(JSON编码):

[{"#identifier#":"test","#status#":"123","#anyColumn#":"123","#id#":"507"}]

我的数据库中有空行,它们是NULL。 MYSQL有问题所以我把字段改为空但不是Null:)

2 个答案:

答案 0 :(得分:0)

OP发现的解决方案:

  

我的数据库中有空行,它们是NULL。 MYSQL有问题所以我把字段改为空但不是Null:)

答案 1 :(得分:0)

如果您将查询更改为:

,则应该没问题

SELECT * FROM anytable WHERE NOT (anyColumn regexp '.smf.' OR anyColumn IS NULL)