我有以下SQL疑问(我正在使用MySql)
我有住宿表:
id bigint(20) unsigned NO PRI NULL auto_increment
id_accomodation bigint(20) unsigned NO MUL NULL
is_master tinyint(1) NO NULL
media longblob NO NULL
description varchar(255) YES NULL
time_stamp datetime YES NULL
如果我这样做:
SELECT * FROM `accomodation_media`
WHERE id_accomodation = 7
AND is_master = true
返回 id_accomodatio 值 7 的所有记录, is_master 值 true 。< / p>
我想获得不同的东西:
我需要以下行为:如果将 is_master 设置为 true ,则必须返回所有包含 is_master 设置的bot的记录是或否( is_master 的值无关紧要,不能将其用作过滤器。)
如果 is_master 值 false 必须返回 is_master *设置为** false 的所有记录。
如何更改查询以执行此操作?
答案 0 :(得分:0)
添加类型为Int(1)的列,这表示长度为1的整数。
所以你可以使用0 OR NULL表示false,将1表示为true
SELECT * FROM accomodation_media
WHERE id_accomodation = 7
AND is_master = 1