[英]How to avoid statement duplication in where clause in MySQL?
有沒有辦法在WHERE
子句中使用別名代替單個結果查詢來避免以下查詢中的語句重復?
SELECT *
FROM (
SELECT *
FROM SomeTable T
WHERE created <= (CASE WHEN
(SELECT created
FROM SomeTable
WHERE sales > 0
ORDER BY created DESC
LIMIT 1)
IS NULL THEN NOW() ELSE
(SELECT created
FROM SomeTable
WHERE sales > 0
ORDER BY created DESC
LIMIT 1)
END)
ORDER BY created DESC LIMIT 10
) as inverseOrder
ORDER BY created ASC;
是否可以修改該查詢以避免語句重復。 即類似的東西?
SELECT *
FROM (
SELECT *
FROM SomeTable T
WHERE created <= someAliasssssssss
IS NULL THEN NOW() ELSE someAliasssssssss
ORDER BY created DESC LIMIT 10
) as inverseOrder
ORDER BY created ASC;
您可以使用COALESCE()
:
SELECT *
FROM (
SELECT *
FROM SomeTable T
WHERE created <= COALESCE(
(SELECT created
FROM SomeTable
WHERE sales > 0
ORDER BY created DESC
LIMIT 1), NOW())
ORDER BY created DESC LIMIT 10
) as inverseOrder
ORDER BY created ASC;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.