[英]MySql Query value can be null
我有這個查詢
SELECT *
FROM `Products`
WHERE brand REGEXP '$brandFilter'
AND categories REGEXP '$categoryFilter'
AND color REGEXP '$colorFilter'
AND price BETWEEN '$priceMin' AND '$priceMax'
AND size REGEXP '$sizeFilter'
我使用 PHP 並且獲得的每個值都可以為空 如果值為空,可以檢查 SQL 嗎? 例如:如果 '$brandFilter' 不為空
SELECT *
FROM Products
WHERE brand REGEXP '$brandFilter'
可以在代碼中做到這一點,但它很長,因為有可能得到 3 個空值
感謝您的幫助!
從 SQL 的角度來看,您需要OR
條件:
SELECT *
FROM Products
WHERE (brand REGEXP :brandFilter OR :brandFilter IS NULL)
AND (categories REGEXP :categoryFilter OR :categoryFilter IS NULL)
AND (color REGEXP :colorFilter OR :colorFilter IS NULL)
...
您可能希望在應用程序中動態構建where
子句,這可能會產生更高效的 SQL 代碼。
請注意,這使用綁定參數而不是連接查詢字符串中的變量。 推薦閱讀:如何防止PHP中的SQL注入? .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.