0

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

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

我正在使用这个查询条件 :: 我将 Keyname 作为参数从客户端传递给这个 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 查询期待一个Keyfor http://54.218.73.244:7005/DescriptionSortedSearchRating/... 我想看到的是,即使我什么也没得到,因为key必须满足 ORDER BY 条件......

如果我传递一个关键值

在此处输入图像描述

如果我不传递关键值

在此处输入图像描述

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

4

3 回答 3

3

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

最简单的解决方案不是分配null给您的[Keyname]变量,而是分配给一个空字符串。

于 2013-10-10T06:13:01.660 回答
2

你可以使用这个:

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

我不确定语法是否正确。但是我希望在这里附加empty字符串 when Keynameisnull并附加Keynamea comma (,)。请尝试一下。

于 2013-10-10T06:16:04.597 回答
1

其他选项是使用功能ISNULL

ISNULL(Keyname, '');
于 2013-10-10T06:45:31.720 回答