SQL使用sum来计算多个子查询的结果

时间:2010-05-25 17:32:03

标签: sql mysql

我有一个包含2列的表:integer和var char。我只给出了整数值,但需要对var char(string)值进行处理。

给定一个整数和其他整数列表(不重叠),我想找到该单个整数的字符串。然后我想获取该字符串并使用该字符串执行INSTR命令,并使用所有其他整数的所有其他字符串。然后我想要所有INSTR的总和,所以结果是一个数字。

假设我有int x,列出y = [y0,y1,y2]。

我想做3个INSTR命令,比如

SUM(INSTR(string for x, string for y0), INSTR(string for x, string for y1), INSTR(string for x, string for y2))

我认为我的方向是错误的,这就是我所拥有的。我对子查询不太满意。

SELECT SUM
(
  SELECT INSTR
  (
    SELECT string FROM pages WHERE int=? LIMIT 1,
    (
      SELECT string FROM pages WHERE id=? OR id=? OR id=? LIMIT 3
    )
  )
)

1 个答案:

答案 0 :(得分:0)

我主要使用MS SQL Server,但你可以在MySQL中试试这个。你基本上想要使用连接,而不是子查询:

SELECT
    SUM(INSTR(x.string, y.string))
FROM
    pages x
INNER JOIN pages y ON
    y.int IN (?, ?, ?) AND
    INSTR(x.string, y.string) > 0
WHERE
    x.int = ?

当然,应该更改列名的“int”。