리 덴 바이 :
나는 하나 사용하여 둘 이상의 행에서 값을 얻으려고 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();
ggordon :
아래 그림과 같이 UNION 모든 출력을 쿼리를 수정할 수 있습니다. 연합은 2 개 이상의 쿼리의 결과를 결합 (같은 순서로 유사한 열이 있는지 확인)
MySqlConnection mysqlcon = new MySqlConnection(M_str_sqlcon);
MySqlCommand mysqlcom = new MySqlCommand(
"SELECT value FROM metatable WHERE(ProductID = 16 AND MetaKey = 'SKU') UNION " +
"SELECT value FROM metatable WHERE(ProductID = 16 AND MetaKey = 'Price') UNION " +
"SELECT value FROM metatable WHERE(ProductID = 16 AND MetaKey = 'Sold') UNION " +
"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();
이 예에서 같은 테이블에서 데이터를 당기는 때문에, 당신은을 사용할 수 있습니다 또는 다음과 같이 조건을 결합 :
MySqlConnection mysqlcon = new MySqlConnection(M_str_sqlcon);
MySqlCommand mysqlcom = new MySqlCommand(
"SELECT value FROM metatable WHERE(ProductID = 16 AND MetaKey = 'SKU') OR (ProductID = 16 AND MetaKey = 'Price') OR (ProductID = 16 AND MetaKey = 'Sold') OR (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();
또는 당신은 아래와 같이 IN 연산자를 사용할 수 있습니다 :
MySqlConnection mysqlcon = new MySqlConnection(M_str_sqlcon);
MySqlCommand mysqlcom = new MySqlCommand(
"SELECT value FROM metatable WHERE ProductID = 16 AND MetaKey IN ('SKU','Price','Sold','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();