在表中添加列并在-mySQL条件下填充它

时间:2020-05-21 13:26:06

标签: mysql

我有一张简单的酒店桌子,其中列出了房间的类型和价格。 我需要在此表中添加一个名为cheap/expensive的列,并在其中填充条件: 如果房价<100,则填写“便宜” 否则填写“昂贵”。 我该怎么办?

我从开始:

ALTER TABLE rooms 
ADD `cheap/expensive` CHAR NOT NULL;

2 个答案:

答案 0 :(得分:1)

我将其命名为 template<class charT, class traits, class Allocator> constexpr bool operator==(const basic_string<charT, traits, Allocator>& lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; cheap,而不是expensive。并且其值应该是(如果列名是cheap/expensive):1-表示昂贵,0-表示便宜。使用整数值,速度更快,并且占用的存储空间更少。

expensive

然后,在使用适当的语言(例如Java,PHP,Python等)每次插入表之前,您都应具备条件。

其他方法是使用ALTER TABLE rooms ADD `expensive` INT(1) NOT NULL DEFAULT 0; ,但是如果您使用后端语言来验证数据,我不建议使用该解决方案。

插入新行时此列的示例触发器:

TRIGGERS

答案 1 :(得分:0)

由于这是派生的主观信息,因此与直接作为数据库中的数据相比,您更有可能在代码或查询中执行某些操作。例如,如果您以后更新价格,则必须知道是否要更新价格便宜还是昂贵。或者,如果您以后决定更改分界线(例如,更改为$ 110或作为家庭平均收入的函数),或者您需要更多细粒度的价格类别(例如,“便宜” |“中度” |“昂贵”),则更改您的帐户更容易,更安全算法,而不是更改数据。

查询示例:

SELECT *, IF (price < 100, "Cheap", "Expensive") as price_category FROM room;