1
對於下面的查詢,某些結果在數據庫中沒有「年齡」。我如何排除這些對「年齡」沒有任何影響的值?排除字段爲空的結果
$sqlStr3 = "SELECT
username
,loginid
,age
FROM login
ORDER BY age ASC
LIMIT $offset, $rowsperpage";
對於下面的查詢,某些結果在數據庫中沒有「年齡」。我如何排除這些對「年齡」沒有任何影響的值?排除字段爲空的結果
$sqlStr3 = "SELECT
username
,loginid
,age
FROM login
ORDER BY age ASC
LIMIT $offset, $rowsperpage";
如果年齡默認爲NULL(典型案例),添加一個簡單的WHERE age NOT NULL
檢查:
SELECT
username
,loginid
,age
FROM login
WHERE age NOT NULL
ORDER BY age ASC
LIMIT $offset, $rowsperpage
你可以使用WHERE子句,但它更容易和更快地只是IS NOT NULL
經營者添加到您的選擇該字段。
$sqlStr3 = "SELECT
username
,loginid
,age IS NOT NULL
FROM login
ORDER BY age ASC
LIMIT $offset, $rowsperpage";
這工作,但它增加了一個多餘的where子句時,有一個內置的運營商爲。不必要的地方添加額外的開銷。 http://www.mysqlperformanceblog.com/2008/10/31/how-expensive-is-a-where-clause-in-mysql/ – Nilpo
@Nilpo我不確定在這裏需要性能優化。此外,鏈接的文章質量可疑。我不是MySQL專家,但基準測試很少正確完成,我自然是一個懷疑論者。 –
我當然不是在暗示它是用石頭寫的,但是一個選擇必須比複合選擇更快。我個人認爲*每個*查詢應儘可能優化。這只是一個好習慣。 – Nilpo