SQL错误操作数应包含1列

时间:2015-10-05 06:09:16

标签: php sql

我哪里错了?

如果我这样做

SELECT CONCAT('$',TRUNCATE(AVG(`payper`),2)) AS `Average Pay` 
FROM `rep_commission` 
WHERE type IN (SELECT type ='TV','NET','FONE')

我得到了

  

操作数应包含1列

如果我试试这个,

SELECT CONCAT('$',TRUNCATE(AVG(payper),2)) AS Average Pay
FROM rep_commission WHERE type=('TV', 'NET', 'FONE')

我得到了

  

操作数应包含1列

如果我试试这个,

SELECT CONCAT('$',TRUNCATE(AVG(`payper`),2)) AS `Average Pay` FROM `rep_commission` WHERE type='TV', 'NET', 'FONE'

我得到了

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在'附近使用。 ' NET',' FONE''在第1行

如果我这样做,

SELECT CONCAT('$',TRUNCATE(AVG(`payper`),2)) AS `Average Pay` FROM `rep_commission` WHERE type='TV'

我得到了

  

平均工资

     

$ 99.99

我追求的是什么,但是ONE类型......

谷歌,聊天和其他SO问题让我以前尝试获得操作数?

1 个答案:

答案 0 :(得分:3)

是的,因为你做错了。您应该使用下面的=运算符,因为SELECT CONCAT('$',TRUNCATE(AVG(payper),2)) AS `Average Pay` FROM rep_commission WHERE type IN ('TV', 'NET', 'FONE') 运算符只能处理单个值而不是多个值

WHERE type IN (SELECT type ='TV','NET','FONE')

在您的第一个查询中,您说下面的内容完全错误

WHERE type IN (
SELECT 'TV'
UNION 
SELECT 'NET'
UNION
SELECT 'FONE')

应该是

WHERE type IN ('TV', 'NET', 'FONE')

(或)简单

node_project
    ├── include_me.js
    └── main.js