我有一个查询来获取两个值:
string query = @"SELECT price, weight
FROM map
WHERE width = @width AND height = @height LIMIT 1";
if (_connSource.State != ConnectionState.Open)
_connSource.Open();
MySqlCommand cmd = new MySqlCommand(query, _connSource);
cmd.Parameters.AddWithValue("width", width);
cmd.Parameters.AddWithValue("height", height);
r = cmd.ExecuteReader();
if (!r.Read())
{
r.Close();
query = @"SELECT retail_price, 0
FROM globe
WHERE PK_Id = @PK_Id LIMIT 1"
cmd = new MySqlCommand(query, _connSource);
cmd.Parameters.AddWithValue("PK_Id ", 1);
r = cmd.ExecuteReader();
}
我需要的是根据一个条件获取price
和,但如果它不存在于表中,那么我需要从一个没有约束的全新表中获取另外两个字段和一个常量 0(不管它是什么)从上表。我可以在一个查询中得到这两个吗?weight
retail_price
注意:请给我优化的查询,它不会强制多次读取相同的值(此函数在一次操作中执行数千次,因此速度非常关键 - 这是我试图将它整合到一起的原因询问)。谢谢..