我需要帮助我的SELECT
.
我有一个可以存在的字段,NULL
其中存储了一个外键。
SELECT * FROM beerImage WHERE beerBRewID = brewID AND beerBrandID = beerID <--- this can be NULL
所以如果什么NULL
都没有发生。
我如何检查是否beerID
可以NOT NULL
使用"beerBrandID = beerID"
?
我需要帮助我的SELECT
.
我有一个可以存在的字段,NULL
其中存储了一个外键。
SELECT * FROM beerImage WHERE beerBRewID = brewID AND beerBrandID = beerID <--- this can be NULL
所以如果什么NULL
都没有发生。
我如何检查是否beerID
可以NOT NULL
使用"beerBrandID = beerID"
?
你可能需要这样的东西:
第一个例子:
SELECT * FROM beerImage WHERE beerBRewID = brewID AND (beerID IS NULL OR beerBrandID = beerID)
第二个例子:
SELECT * FROM beerImage WHERE beerBRewID = brewID AND beerID IS NOT NULL AND beerBrandID = beerID
第一个示例将允许您显示 beerID 为 null 的记录以及 beerBrandID 等于 beerID 的啤酒(两者)。
第二个将准确返回与 beerBrandID 相对应的啤酒(不包括 NULL beerIDs)。
CASE
在 where 子句中使用 with 语句怎么样
WHERE
CASE WHEN beer.id IS NOT NULL
THEN beer.brand_id = 12345
ELSE TRUE
END
如果要包含不匹配的记录,则需要外部联接
SELECT beer.id AS beerID,
beer.barrelID AS barrelID,
beer.imageID AS imageID,
beer.title AS title,
beer.map AS map,
beer.longitude AS longitude,
beer.latitude AS latitude,
brand.name AS brandName,
brew.type AS brewType,
image.name AS imageName,
variation.name AS variationName
FROM brand, brew, image, beer
LEFT OUTER JOIN variation ON variation.ID = beer.VariationID
WHERE beer.id = %s
AND md5(beer.memberID) = %s
AND beer.review = 1
AND brand.ID = beer.brandID
AND brew.ID = beer.brewID
AND image.ID = beer.imageID
要检查 null / not null,请使用 IS NULL / IS NOT NULL
AND beerID IS NOT NULL
您可以使用“IS NULL”或“IS NOT NULL”MySQL 比较函数。
在此处阅读有关此内容的更多信息:http: //dev.mysql.com/doc/refman/5.0/en/working-with-null.html http://dev.mysql.com/doc/refman/5.0/en/comparison -operators.html#operator_is-null