MySql - 添加逗号分隔符
Posted
技术标签:
【中文标题】MySql - 添加逗号分隔符【英文标题】:MySql - Add comma delimiter 【发布时间】:2020-07-01 11:00:10 【问题描述】:有没有办法为 IN 子句的值添加逗号?例如如果我的查询
SELECT * FROM Persons WHERE Id IN(.....)
我已经从 csv 文件中复制了,例如:
12
23
58
55
我试着把光标放在 12 的左边,然后按住 Alt + Shift,点击向下键任意多的数字,我看到了行,然后我松开了键 (Alt + Shift) 我按下了逗号 (,
) 但它只应用在一行上,我做错了什么?
【问题讨论】:
编辑功能不是通用的。你的编辑是什么? 那里只有 4 个数字,为什么不直接输入呢? 由于您使用的是 csv 文件,请在记事本中打开文件并从那里复制。它将有逗号 @P.Salmon 不,我有一个 1700 的列表,手动操作并不明显, 我正在使用 ubuntu,我想问是否有办法或技巧在 mysql 中用逗号分隔列表的元素 【参考方案1】:您是否使用 Google Chrome/FireFox 并启用了开发工具(按 F12 显示)? 你可以去控制台粘贴这段代码
let lines = `
Paste text from csv here
`;
let lineText = lines.split('\n').filter(x => x.trim().length > 0).map(x => x.trim())
console.log(` SELECT * FROM Persons WHERE Id IN($lineText.join(', '))`)
然后你可以把从csv复制的文字粘贴到Paster text from csv here
然后输入。您将在控制台中获得 sql 脚本。然后复制sql并粘贴到mysql命令执行器中。
希望这会有所帮助!
【讨论】:
【参考方案2】:当然,Alt+Shift 在 MySQL Workbench 中添加了几个游标,但(无论出于何种原因)它们的行为并非如此。但是,编辑器支持正则表达式进行搜索和替换,因此您可以使用它:
选择除最后一行之外的所有行。
转到编辑/查找/查找和替换(Ctrl+H)。
从小?图标设置正则表达式模式:
搜索$
(行尾)并替换为,
(逗号)。
点击全部替换。
免责声明:每次尝试时,我的 Windows 版 Workbench 都会冻结。如果你的也是这样,你可能只想切换到另一个 MySQL 客户端;这种正则表达式语法在编辑器中几乎是通用的。
【讨论】:
以上是关于MySql - 添加逗号分隔符的主要内容,如果未能解决你的问题,请参考以下文章
PHP 和 MySQL GROUP_CONCAT 带分隔符逗号并搜索逗号连接的位置