【发布时间】:2013-03-12 22:32:13
【问题描述】:
我正在使用这个有错误的代码:
SET @rejects = '';
SELECT *
FROM list
WHERE maker = 1
AND by_ids IN ('10','11')
AND country LIKE '%I%'
AND (
src IS NULL
|| src NOT IN (@rejects)
AND checkSrc(src) = 'yes'
AND SET @rejects = CONCAT(@rejects,',',src)
);
导致问题的原因是什么?
【问题讨论】:
-
可能是
by_ids INT('10','11')到by_ids IN('10','11')? -
为什么
AND SET @rejects = CONCAT(@rejects,',',src)在WHERE子句中? -
这就是我想要的,我想将每个搜索到的 src 的值连接到 @rejects 变量中。
-
||不应用作或。
-
您可以在搜索“MySQL group by best/top n”或类似内容时看到示例 - 这是因为 MySQL 解决方案需要一些有趣的技巧(通常只是增加一个计数器)。
标签: mysql variables concatenation variable-assignment