我可以从同一列中选择多个值吗

Lee*_*igh 2 .net c# mysql sql ado.net

我正在尝试使用单个MySql.Data SELECT语句从多行获取值。

我尝试使用以下代码但失败了。错误说

第 # 行存在语法错误

在此处输入图片说明

MySqlConnection mysqlcon = new MySqlConnection(M_str_sqlcon);

MySqlCommand mysqlcom = new MySqlCommand(
    "SELECT value FROM metatable WHERE(ProductID = 16 AND MetaKey = 'SKU') AND " +
    "SELECT value FROM metatable WHERE(ProductID = 16 AND MetaKey = 'Price') AND " +
    "SELECT value FROM metatable WHERE(ProductID = 16 AND MetaKey = 'Sold') AND " +
    "SELECT value FROM metatable WHERE(ProductID = 16 AND MetaKey = 'SoldDate')"
, mysqlcon);

MySqlDataReader r = mysqlcom.ExecuteReader(CommandBehavior.CloseConnection);

prodMeta.Add(new ProductMeta{
    ProductSKU = r.GetString(0),
    RegularPrice = r.GetDouble(1),
    SoldCount = r.GetInt32(2),
    SoldDate = r.GetString(3)
});

mysqlcon.Close();
Run Code Online (Sandbox Code Playgroud)

Sal*_*ari 6

Select您可以简单地使用这样的in运算符,而不是重复使用无效的语句:

SELECT value 
FROM metatable 
WHERE ProductID = 16 AND MetaKey in ('SKU','Price', 'Sold', 'SoldDate')
Run Code Online (Sandbox Code Playgroud)

而且你不需要在 where 后面加上括号。