为什么此搜索查询什么都不返回?

时间:2011-12-09 01:38:08

标签: mysql sql

我在user_name='high'

下有这个表格

function_description:

akram在日期

测试

akram正在学习

TEST4

kheith是男性

TEST3

我想要一个返回字段结果的查询,该字段至少包含'akram'

SELECT * 
  FROM functions 
 WHERE 'isEnabled'=1
   AND 'isPrivate'=1
   AND user_name='high'
   AND function_description LIKE '%akram%'

这绝对没有任何回报!

为什么?

2 个答案:

答案 0 :(得分:1)

您列出的列名称就像它们是字符串一样。这就是它什么都不返回的原因。

试试这个:

SELECT * 
FROM functions 
WHERE user_name='high'
AND function_description LIKE '%akram%'

编辑:尝试重新阅读您的问题后...此表中的isEnabledisPrivate列是? edit2:updated ..删除那些未知的列。

答案 1 :(得分:1)

您正在将字符串'isEnabled'与整数1进行比较,这可能导致整数转换为字符串,然后比较失败。 (另一种方法是将字符串转换为整数0,并且比较仍然失败。)

在MySQL中,您使用引号而不是单引号来引用列名和表名:

SELECT * 
  FROM `functions` 
 WHERE `isEnabled` = 1
   AND `isPrivate` = 1
   AND `user_name` = 'high'
   AND `function_description` LIKE '%akram%'

在标准SQL中,您使用双引号来创建“分隔标识符”;在Microsoft SQL Server中,您可以在名称周围使用方括号。

下次请更仔细地显示架构(列名,样本值,类型,如果需要)。