如何检查字段在MySql中有数据

如何检查字段在MySql中有数据

这是我的代码和结果:

SELECT DISTINCT
    CAL.CarListingId,
    (SELECT
           IF(REPLACE(carImage.ImageUrl,'~','') IS NULL,'asdf',REPLACE(carImage.ImageUrl,'~',''))

        FROM
            carImage
        WHERE
            IsMainImage = 1 AND Status = 1
                AND CarListingId = CAL.CarListingId) AS ImageUrl,
    CAL.ListingNumber,
    CAL.Caption,
    CAL.Year,
    CAL.Km,
    CAL.Color,
    CAL.Price,
        CONCAT((SELECT Name FROM City WHERE CityId IN (SELECT CityId FROM County WHERE CountyId = CAL.CountyId)),'/', (SELECT Name FROM County WHERE CountyId = CAL.CountyId)) AS Region,
    CAL.Creation

FROM
    carlisting AS CAL
        INNER JOIN
    User AS U ON U.UserId = CAL.CreatedBy

INNER JOIN
    carlistingcategory AS CLC ON CLC.CarListingId = CAL.CarListingId
LEFT JOIN CarImage AS CI ON CI.CarListingId = CAL.CarListingId

ORDER BY CAL.Creation;

I use this query as a subquery in another query. I need to check this query's result if it is `NULL`. But as you can see there is no data so `IS NULL`  returns false. How can I check the sub query has data ?

最佳答案

尝试此查询:

SELECT DISTINCT
    CAL.CarListingId,
    CAL.ListingNumber,
    CAL.Caption,
    CAL.Year,
    CAL.Km,
    CAL.Color,
    CAL.Price,
        CONCAT((SELECT Name FROM City WHERE CityId IN (SELECT CityId FROM County WHERE CountyId = CAL.CountyId)),'/', (SELECT Name FROM County WHERE CountyId = CAL.CountyId)) AS Region,
    CAL.Creation,
    ( case when  CI.ImageUrl IS NULL then 'asdf' else  CI.ImageUrl
            end)

FROM
    carlisting AS CAL
LEFT JOIN CarImage AS CI ON CI.CarListingId = CAL.CarListingId
        INNER JOIN User AS U ON U.UserId = CAL.CreatedBy
INNER JOIN carlistingcategory AS CLC ON CLC.CarListingId = CAL.CarListingId


ORDER BY CAL.Creation;

关于mysql - MySql:如何检查字段在MySql中有数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18760434/

10-12 06:45