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 - 添加逗号分隔符的主要内容,如果未能解决你的问题,请参考以下文章

MySQL双引号加逗号,是啥分隔符

mysql 两个以逗号分隔字段怎么匹配

PHP 和 MySQL GROUP_CONCAT 带分隔符逗号并搜索逗号连接的位置

使用 laravel 和 vue js 从 mysql 数据库中检查带有逗号分隔值的复选框

php 如何从mysql输出数组用逗号分隔?

添加分隔符并删除逗号