我有一个mysql数据库表,其中包含许多书目记录。它的格式有点像:
field content |field title |barcode
Black Beauty |Title |9781235842
James Joyce |Author |9781452585
有几十种可能的字段标题。
每条记录有效地分布在多个行上,记录是共享条形码的组合行。
我想看看哪些项目有短记录。
我有一个特定条形码的工作查询:
select barcode, sum(length(field_content))
from central
where barcode = 420908032337
;
我有一个1.3k的可疑条形码列表。有没有办法通过循环遍历此列表来运行SQL查询?
我在工作机器上可以访问HeidiSQL,git bash [包括grep等],但是无法安装php,ruby等脚本。
答案 0 :(得分:2)
无需循环使用IN
运算符并提供所有条形码值
where barcode in (1.3K list of barcodes)
您可以通过多种方式使用脚本语言或任何方式形成该列表。否则,创建一个temporary
表。填写条形码列表并从该临时表中选择
where barcode in (select distinct barcodes from my_temp_table)
答案 1 :(得分:1)
select barcode,
sum(length(field_content)) AS rec_len
from central
GROUP BY barcode
ORDER BY rec_len -- display the shortest first
LIMIT 50; -- if you want to see just 50