嗨,我想在数据库上运行查询,但我不断收到此错误,你看到我的查询有什么问题吗?SQL查询错误#1064
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and not in (SELECT *
FROM `data`
WHERE `Category` LIKE 'beauty%')
感谢名单
嗨,我想在数据库上运行查询,但我不断收到此错误,你看到我的查询有什么问题吗?SQL查询错误#1064
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and not in (SELECT *
FROM `data`
WHERE `Category` LIKE 'beauty%')
感谢名单
的问题是在这方面:
,而不是在
的corect语法
and not <field name> in (Select <INDIVIDUAL FIELD> from ...)
你不能在这里做一个子查询子句,您选择所有的coumns(*)您需要在子查询中选择一个单独的列并将其绑定到一个在主要查询中的列。
,所以该完整的语句应该是这样的
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` not in (SELECT Category
FROM `data`
WHERE `Category` LIKE 'beauty%')
这相当于
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` NOT LIKE 'beauty%'
这是一个很大的可读性IMO
欲了解更多信息在一个IN语句中使用子查询在WHERE子句中,参见http://beginner-sql-tutorial.com/sql-subquery.htm
向下滚动查找文章中的“相关子查询”。
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` not in
(SELECT `Category`
FROM `data`
WHERE `Category` LIKE 'beauty%')
如果“数据”只包含一列这只会工作,即使当时大多数工具将不惜使用*在子查询在where子句中。 – David 2012-04-04 14:37:47
@DavidStratton良好的捕获。 – 2012-04-04 14:40:43
SELECT * FROM `data`
WHERE `Category` LIKE '%beauty%'
and `Category` not in (SELECT *
FROM `data`
WHERE `Category` LIKE 'beauty%')
...和Category
?
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` not in (SELECT *
FROM `data`
WHERE `Category` LIKE 'beauty%')
我觉得您的查询应该是这样的:为什么你在这里需要一个子查询
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%'
AND `Category` NOT LIKE 'beauty%'
:
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%'
AND `Category` NOT IN
(
SELECT `Category`
FROM `data`
WHERE `Category` LIKE 'beauty%'
)
无论如何,我会重写查询到?这应该是你的查询
SELECT *
FROM `data`
WHERE `Category` LIKE '%beauty%' and `Category` not LIKE 'beauty%'
...和'Category' NOT IN(SELE ... – 2012-04-04 14:33:15