【发布时间】:2016-07-24 22:44:58
【问题描述】:
我正在尝试用一些文本替换查询中的 null,而不是通过代码来完成。
查询写成如下:
mysql> SELECT title, AVG(rating) AS avg_rating FROM movie m LEFT OUTER JOIN rating r ON m.movieID = r.movieID WHERE
year
+-------------------------------------+------------+
| title | avg_rating |
+-------------------------------------+------------+
| Davy Crockett and the River Pirates | 3.6667 |
| Dumbo | 2.0000 |
| Fantasia | 1.5000 |
| Rocky | NULL |
| Superman | NULL |
| The Godfather | NULL |
| The Jungle Book | 4.6667 |
+-------------------------------------+------------+
是否可以有一个文本说“没有评级”而不是 NULL?
【问题讨论】:
-
是的。但是该列的数据类型需要更改为“文本”(您不能有一列在某些行中包含字符串,在某些行中包含数字)
-
@Strawberry 确实有效!奇怪的是,虽然使用 MySQL 工作台,但它给出了“blob”的输出
-
在这种情况下,即使 IFNULL 也会给出正确的解决方案,对吧?
-
Fdreger 弄错了,或者可能误解了要求。应该没有必要将整数类型转换/转换为文本,但也许工作台需要推动。无论哪种方式,都不要更改列的数据类型!
-
@Strawberry:也许你误解了我的评论?无论您如何处理查询(合并,何时,您命名它) - 结果将是一列字符串,而不是数字。这可能是个问题。或者可能不是问题。取决于稍后对查询结果做了什么。