我有一个查询 - - <这是一个有效的查询>
'SELECT *
FROM MyTable
WHERE city= ?
ORDER BY name ' [Keyname]
我正在使用此查询条件::我将Keyname作为params从客户端传递给此sql查询
这适用于&我得到了所需的结果但是
如果我没有通过任何说法null
来自客户端作为Keyname的参数值.........此查询失败
null
来了....
满足ORDER BY
条件或
希望我很清楚
CASE1 ::为网址
http://54.218.73.244:7005/DescriptionSortedSearchRating/?Key=Pune
我告诉的查询满足::
但是
http://54.218.73.244:7005/DescriptionSortedSearchRating/?Key=
我的查询失败了,我的sql查询期待Key
http://54.218.73.244:7005/DescriptionSortedSearchRating/
.....如果我没有通过我的查询,请给我一个结果..
。
我想要看到的是即使我得不到key
必须满足ORDER BY条件......
如果我通过关键值
如果我没有通过关键价值
您可以清楚地看到我无法从数据库中获取结果(空JSON)
答案 0 :(得分:3)
这个问题与MySQL没有任何关系。这是您的高级语言的100%。 null
所拥有的[Keyname]
值是您用于创建将作为最终查询的字符串的语言的null
值。
最简单的解决方案是不将null
分配给[Keyname]
变量,而是将其作为空字符串。
答案 1 :(得分:2)
你可以用这个:
ORDER BY name CASE WHEN Keyname IS NULL THEN '' ELSE CONCAT(',', Keyname) END
我不确定语法是否正常。但是,我希望在empty
为Keyname
时附加null
字符串,并在Keyname
附加comma (,)
。请试一试。
答案 2 :(得分:1)
其他选项是使用函数ISNULL
ISNULL(Keyname, '');