在MySQL中有没有办法在执行SELECT *时选择一列而不是另一列?

时间:2017-10-12 00:16:50

标签: mysql sql select

好的,暂时忘掉“好的数据库设计”。假设我有两个表,它们有一些相同的列。

item
-------
id
title
color

item_detail
-------
id
weight
color

在良好的普通查询中,您可以在查询中选择所需的列,如下所示:

SELECT item.title, item_detail.color, item_detail.weight ...

但是,如果您遇到使用star / all构建的查询,那该怎么办?

SELECT * ...

在这种情况下,您会在结果中拉回两个color列,每个表一个。在MySQL中有没有办法选择一个color列而不是另一个,所以只有一个显示在结果中,而没有完全重写该语句?这样我可以说表item_detail优先吗?

可能不是,但我想我会问。

1 个答案:

答案 0 :(得分:1)

ERR。不,没有。
但定义"没有完全重写语句"。据我所知,您只需要重写查询的select *部分 如果您根本无法触摸该语句,那么您可以自由地忽略应用程序中的列(列的顺序在调用之间不会改变)...或者您可以创建视图...
当你说&#34时,很难知道你正在处理哪些限制;但是如果你被查询困住怎么办?