我有一个包含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
)
)
)
答案 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”。