把列表转换为 SQL IN 子句·JSON 数组·Markdown·HTML 列表
把每行一个的值列表转换为SQL IN子句、JSON数组、Markdown列表和HTML列表的方法。结合示例讲解加引号、用逗号连接,以及值内含引号时的处理顺序。
要把 Excel 某一列或记事本里每行一个的值列表放进代码或文档,就需要给它们加上引号并用逗号连接。值有好几百个时,手工处理很困难。基本原理是两个操作的组合:用 在行首行尾添加字符 在每行首尾添加字符,再用 删除换行(合并为一行) 把各行连成一行。
SQL IN 子句
内置配方先整理空格、删除空行、删除重复,然后给每一行加上单引号,并用 , 连接。
A-1001 A-1002 A-1003 A-1001
上面的输入会变成下面这一行。
'A-1001', 'A-1002', 'A-1003'
把结果粘贴到 WHERE code IN ( 和 ) 之间即可。如果连括号也想在工具里加上,请在最后添加一个正则模式的 查找替换,查找内容填 ^(.*)$,替换内容填 IN ($1)。连接完成后只剩一行,所以整体会被包裹一次。
值中含有单引号时
如果值中有单引号,比如 O'Brien,就会变成 'O'Brien',导致 SQL 语法错误。SQL 字符串中的单引号需要写两次,所以请在加引号之前加入一个查找替换步骤,查找内容填 ',替换内容填 ''。如果顺序反了,刚加上的外侧引号也会被加倍。
'O''Brien', 'D''Angelo'
如果是数字列表,不加引号直接连接才对。请在配方中关闭“在行首行尾添加字符”这一步。
这个方法是用来快速生成列表的。在程序中把用户输入放进 SQL 时,不要拼接字符串,请使用数据库库提供的参数绑定。
JSON 数组
- 如果值中有反斜杠,请把查找替换设为普通模式,在关闭“将 \n \t 解释为换行和制表符”的状态下,把
\替换为\\。 - 用同样的方式把
"替换为\"。必须先处理反斜杠,刚插入的反斜杠才不会再被加倍。 - 用“在行首行尾添加字符”在行首加
",在行尾加"。 - 应用删除换行,选择“自定义”,分隔符为
,。 - 在结果前后加上
[和]。也可以用上面的正则方法,写成^(.*)$→[$1]。
["北京", "上海", "广州"]
Markdown 列表
项目符号列表只要在“在行首行尾添加字符”的“添加到行首的字符”中填入 - 即可。需要编号列表时,请使用 添加行号,并把格式设为 {n}. 。如果原文已经带有编号或项目符号,请在前一步加入 删除行号·项目符号,先把它们删掉。
- 北京 - 上海 - 广州
HTML 列表
- 如果值中含有
&或<,请用查找替换先把&替换为&,然后再把<替换为<。顺序反了的话,<中的&会被再次替换。 - 用“在行首行尾添加字符”在行首加
<li>,在行尾加</li>。 - 把结果放在
<ul>和</ul>之间。
<li>北京</li> <li>上海</li> <li>广州</li>
生成正则表达式的候选列表
如果想把关键词列表合成一个正则表达式,请在删除换行的分隔符中填入 |,得到 苹果|梨|葡萄 这样的形式。如果值中含有 . ( + 这类正则符号,请先把查找替换设为正则模式,查找内容填 [.*+?^${}()|[\]\\],替换内容填 \$&,在符号前面加上反斜杠。
a\.b|\(c\)|1\+1
其他语言的数组
Python 列表和 JavaScript 数组同样是用双引号包裹字符串、用逗号连接,这一点与 JSON 数组相同,所以直接按上面的 JSON 步骤操作即可。如果一行太长不便阅读,也可以在“添加到行尾的字符”中填入 ",,省略删除换行,让每行保留一个值。这种情况下,最后一个值后面的逗号请手动删除。JSON 不允许末尾逗号。
以制表符分隔的一行
如果想把纵向列表横向粘贴到电子表格的一行中,请在删除换行的分隔符中填入 \t。把以制表符连接的结果粘贴到一个单元格中,值就会依次分到右边的各个单元格里。
注意
- 添加字符之前要先删除首尾空格,才不会出现
' A-1003'这种空格跑进引号里的情况。 - “在行首行尾添加字符”默认开启“跳过空行”,但在删除换行之前先删掉空行,结果更容易检查。
- 做好的流水线可以命名保存为配方,下次就能立即重复同样的转换。
检查清单
- 遵循 整理空格 → 删除空行 →(删除重复)→ 转义 → 首尾添加 → 连接 的顺序。
- 转义要在加引号之前进行。
- 数字值不加引号直接连接。
最后更新: 2026-09-23