2010-05-25 56 views
0

我有一个包含2列的表:integer和var char。我只给出整数值,但需要对var char(string)值进行操作。SQL使用sum计算多个子查询的结果

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

让我们说我有int x,并列出y = [y0,y1,y2]。

我想去做

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

我想我在错误的方向前进3个INSTR命令,这就是我。我不擅长子查询。

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

回答

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”用于列名称应该改变。