基本上,我0或0返回1 - 這不是真的是我想要的:)我真的不知道爲什麼,因爲如果我選擇0或0我得到0 ..false或false = true在MySQL中?很奇怪的行爲
我認爲這可能是因爲is_premium_dealer是一個枚舉('0','1')而不是一個布爾(不問我爲什麼,我沒有設計這個數據庫!)
有沒有人知道這是因爲ENUM ,如果是這樣,我怎麼把它轉換成一個整數?
在此先感謝! 約翰。
SELECT is_premium_dealer, company_name,
(SELECT COUNT(*) FROM adverts WHERE user_id = users.id AND is_archived = 0) AS innerquery,
((SELECT COUNT(*) FROM adverts WHERE user_id = users.id AND is_archived = 0 AND is_deleted = 0) > 0 OR is_premium_dealer = 1) AS logicissue
FROM `user_profiles_dealers`
LEFT JOIN `users` ON user_profiles_dealers.user_id = users.id
LEFT JOIN `counties` ON user_profiles_dealers.county_id = counties.id
LEFT JOIN `countries` ON user_profiles_dealers.country_id = countries.id
WHERE (users.is_active=1)
AND (((SELECT COUNT(*) FROM adverts WHERE user_id = users.id AND is_archived = 0 AND is_deleted = 0) > 0) OR is_premium_dealer > 0)
AND company_name like '%autocraft%' limit 5\G
結果:
*************************** 1. row ***************************
is_premium_dealer: 0
company_name: A Company
innerquery: 0
logicissue: 1
1 row in set (0.00 sec)
相信我可以在BINARY(is_premium_dealer)中包裝is_premium_dealer ..現在就測試。 –