在WHERE子句中使用的拆分varchar值

时间:2019-04-08 07:00:34

标签: c# mysql split varchar

我正在传递来自C#代码的字符串列表,该字符串已连接到MySQL中的varchar变量,以","分隔。

我想拆分varchar并在我的WHERE子句中使用它,如下面的示例代码:

SELECT * FROM table_name WHERE column_name IN split(varchar_variable, ",")

mysql是否具有返回数组的split函数的功能? 或者,如果您对如何正确执行操作有任何建议,请先谢谢。

2 个答案:

答案 0 :(得分:0)

不幸的是,没有这样的功能。

您可以采取一些解决方法:如果您没有诸如此类的值

value1,value2,value3

然后使用,value1,运算符查找LIKE就足够了。要使其正常工作,您需要在列表中添加逗号:

,value1,value2,value3,

因此您的查询将变为:

SELECT *
FROM table_name
WHERE ',' + varchar_variable + ',' LIKE ',' + column_name + ','

答案 1 :(得分:0)

如果您想通过WHERE语句在SELECT子句内传递多个值,则需要修改WHERE子句参数值,例如

string values = "'\'Albania\',\'Andorra\''";

如果您调试此代码,则它将看起来像

''Albania','Andorra''

MySql编辑器中,您可以传递类似的值,

SET @myArray := '\'Albania\',\'Andorra\'';

所以最终您的SELECT语句将成为

SET @myArray := '\'Albania\',\'Andorra\'';

SET @sql = CONCAT('SELECT CountryID, CountryName FROM Countries WHERE CountryName IN (', @myArray, ')');

PREPARE statement FROM @sql;
EXECUTE statement;

输出:

enter image description here