sql中的简单查询条件

时间:2013-10-10 06:06:27

标签: mysql sql sql-order-by

我有一个查询 - - <这是一个有效的查询>

'SELECT * 
FROM MyTable
WHERE city= ?
ORDER BY name ' [Keyname]

我正在使用此查询条件::我将Keyname作为params从客户端传递给此sql查询

这适用于&我得到了所需的结果但是

如果我没有通过任何说法null来自客户端作为Keyname的参数值.........此查询失败

  • 我怎样才能做出更好的查询......所以即使null来了.... 满足ORDER BY条件

  • R还有我需要寻找的其他解决方案
  • 如果是的话......它是什么?

希望我很清楚

[编辑]

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条件......

如果我通过关键值

enter image description here

如果我没有通过关键价值

enter image description here

您可以清楚地看到我无法从数据库中获取结果(空JSON)

3 个答案:

答案 0 :(得分:3)

这个问题与MySQL没有任何关系。这是您的高级语言的100%。 null所拥有的[Keyname]值是您用于创建将作为最终查询的字符串的语言的null值。

最简单的解决方案是不将null分配给[Keyname]变量,而是将其作为空字符串。

答案 1 :(得分:2)

你可以用这个:

ORDER BY name CASE WHEN Keyname IS NULL THEN '' ELSE CONCAT(',', Keyname) END

我不确定语法是否正常。但是,我希望在emptyKeyname时附加null字符串,并在Keyname附加comma (,)。请试一试。

答案 2 :(得分:1)

其他选项是使用函数ISNULL

ISNULL(Keyname, '');