根据内容排除MySQL的结果

时间:2014-02-02 06:23:58

标签: php mysql

我目前正在使用以下查询搜索我的数据库。我真正需要做的是获得30个不包含信息列中包含的标记#DONE#的结果。数据库的结构如下:

ID                  Info1       Info2   Info3           DateAdded
-----------------------------------------------------------------
1235                0000        6       #DONE#infohere  35:27.9
5678                1111        5       #DONE#infohere  47:15.4
4583                2222        7       otherinfohere   47:36.8
1238                3333        9       otherinfohere   47:12.6

当前查询:

SELECT * FROM $tablename WHERE `Info3` <> '' LIMIT 0,30

因此,在完整数据库中,有Info3个列中的30多个列具有#DONE#标记且没有#DONE#标记。我需要做的是排除所有具有#DONE#标记的结果。我不想只是得到所有结果,因为当数据库变大时会对数据库有广泛的影响,但我最终需要30个结果。有什么建议吗?

2 个答案:

答案 0 :(得分:3)

你想要不喜欢

SELECT * FROM $tablename WHERE `Info3` NOT LIKE '#DONE#%' LIMIT 0,30

编辑:如果#DONE#并不总是在开头,请使用%#DONE#%

SELECT * FROM $tablename WHERE `Info3` NOT LIKE '%#DONE#%' LIMIT 0,30

答案 1 :(得分:1)

试试这个 -

SELECT * FROM $tablename WHERE `Info3` not like '#DONE#%' LIMIT 0,30