c# - MySQL Split 在 "SELECT WHERE IN"语句中使用

标签 c# sql mysql csv

我一直在搜索各种 MySQL 站点,希望找到能让我改变这个的东西:

var parameters = "a,b,c,d"; // (Could be any number of comma-delimited values)

进入这个(假设我的参数以某种方式变成你在 IN block 中看到的值):

SELECT * FROM mytable WHERE parametertype IN('a', 'b', 'c', 'd');

但我并没有取得很大的成功!我找到的最好的网站是:dev.mysql.com ,它讨论了基于定界符(在我的例子中是',')的字符串拆分,尽管它没有找到任何答案......

有谁知道将逗号分隔的字符串拆分为可在此上下文中使用的一组字符串的好方法吗?

最佳答案

它可能没有您需要的所有灵 active ,但 MySQL FIND_IN_SET功能可能就足够了。 不过,要与之比较的集合中有最多 64 个值的硬性限制。

例如:

SELECT  *
FROM    mytable
WHERE   FIND_IN_SET( parametertype, 'a,b,c,d' ) != 0

这是使用内联 MySQL 的示例 SET ('a,b,c,d') - 它是一种枚举。它可能是一个信号,表明如果使用这些,数据模型的规范化就会出现问题。但是,它们可以方便地消除连接,或(如本例)与驻留在数据库外部的复杂信息相关联。

关于c# - MySQL Split 在 "SELECT WHERE IN"语句中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2185289/

相关文章:

sql - 如何查找并替换每行的第一个空值?

php - 插入SQL后更新

C# - 通过 HTTP 代理将文件上传到 FTP

c# - 如何在 Silverlight 上显示 tiff 文件?

SQL Server - 显示当月内的日期

mysql - SQL 对表中所有列的不同值进行计数并计算空值

mysql - ZF3 - Zend\Db\Sql\Predicate\Expression - SQL DATE_FORMAT 上的错误转义

mysql - 在一对一关系中,我应该删除表的 id 列之一吗?

c# - 将 WPF ComboBox 绑定(bind)到自定义列表

c# - 从数据库检索时的字符编码