簡體   English   中英

為什么我的 OR 運算符在我的 WHERE 子句中不起作用?

[英]Why is my OR operator not working in my WHERE clause?

我需要編寫一個僅返回以 A、B、C 或 E 開頭的名稱的 where 語句。我有一個 WHERE 子句,其條件小於 D,這似乎工作正常。 但是我的 Equals E 條件似乎不起作用。

SELECT vendor_name,
    CONCAT(vendor_contact_last_name, ', ', vendor_contact_first_name) AS full_name
FROM vendors
WHERE vendor_contact_last_name < 'D' 
    OR vendor_contact_last_name = 'E'
ORDER BY vendor_contact_last_name, vendor_contact_first_name;

它只返回以 A、B 和 C 開頭的名稱。

您可以使用LEFT使用以下內容:

SELECT vendor_name,
    CONCAT(vendor_contact_last_name, ', ', vendor_contact_first_name) AS full_name
FROM vendors
WHERE LEFT(vendor_contact_last_name, 1) IN ('A', 'B', 'C', 'E')
ORDER BY vendor_contact_last_name, vendor_contact_first_name;

...或使用RLIKE

SELECT vendor_name,
    CONCAT(vendor_contact_last_name, ', ', vendor_contact_first_name) AS full_name
FROM vendors
WHERE vendor_contact_last_name RLIKE '^[A-CE]'
ORDER BY vendor_contact_last_name, vendor_contact_first_name;

dbfiddle.uk 上的演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM