我正在传递来自C#代码的字符串列表,该字符串已连接到MySQL中的varchar变量,以","
分隔。
我想拆分varchar并在我的WHERE
子句中使用它,如下面的示例代码:
SELECT * FROM table_name WHERE column_name IN split(varchar_variable, ",")
mysql是否具有返回数组的split
函数的功能?
或者,如果您对如何正确执行操作有任何建议,请先谢谢。
答案 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;
输出: