Php 基于内容从MySQL中排除结果
我目前正在使用以下查询搜索我的数据库。我真正需要做的是得到30个结果,这些结果不包括信息列中包含的标记DONE。数据库的结构如下:Php 基于内容从MySQL中排除结果,php,mysql,Php,Mysql,我目前正在使用以下查询搜索我的数据库。我真正需要做的是得到30个结果,这些结果不包括信息列中包含的标记DONE。数据库的结构如下: ID Info1 Info2 Info3 DateAdded ----------------------------------------------------------------- 1235 0000 6 #DONE#infohe
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个结果。有什么建议吗?你不喜欢吗
SELECT * FROM $tablename WHERE `Info3` NOT LIKE '#DONE#%' LIMIT 0,30
编辑:如果不总是在开始时完成,请使用%DONE%
SELECT * FROM $tablename WHERE `Info3` NOT LIKE '%#DONE#%' LIMIT 0,30
你不想这样
SELECT * FROM $tablename WHERE `Info3` NOT LIKE '#DONE#%' LIMIT 0,30
编辑:如果不总是在开始时完成,请使用%DONE%
SELECT * FROM $tablename WHERE `Info3` NOT LIKE '%#DONE#%' LIMIT 0,30
试试这个-
SELECT * FROM $tablename WHERE `Info3` not like '#DONE#%' LIMIT 0,30
试试这个-
SELECT * FROM $tablename WHERE `Info3` not like '#DONE#%' LIMIT 0,30
更改数据库设计是否太晚了?最简单的方法是添加一个名为DONE的新列,并将其设置为适当的值。否则,您将不得不使用LIKE操作符。更改数据库设计是否为时已晚?最简单的方法是添加一个名为DONE的新列,并将其设置为适当的值。否则,您将不得不使用LIKE操作符。