簡體   English   中英

SELECT 與不同的 WHERE 子句

[英]SELECT with varying WHERE clause

我有下表(C# 和 MS Access):

_sSqlString = "CREATE TABLE Device("
                                            + "deviceID AUTOINCREMENT NOT NULL,"
                                            + "brandName VARCHAR NOT NULL,"
                                            + "modelName VARCHAR NOT NULL,"
                                            + "deviceCaliber VARCHAR NOT NULL,"
                                            + "batterySize INT NOT NULL,"
                                            + "screenSize DOUBLE NOT NULL,"
                                            + "frontCameraMP INT NOT NULL,"
                                            + "rearCameraMP INT NOT NULL,"
                                            + "weightedScore INT,"
                                            + "PRIMARY KEY (deviceID)"
                                            + ")";

帶有填充數據的 MS Access 中的表

目標:

用戶可以 select 他們喜歡的品牌,這將執行 SELECT 命令來查找所有符合他們喜好的設備。 用戶也可以 select “任何品牌”,這是一個簡單的 SELECT * 命令。

用戶界面截圖 1

用戶界面截圖 2

我試過的:

成功:一個 SELECT 程序,通過所有品牌,如果沒有選擇,則設置為 NULL。

雖然這行得通,但我覺得 OR 的重復效率低下,並且有改進的潛力。 是否有可能改善這一點,或者 SELCT OR、OR、OR etc 是最好的方法?

提前感謝您的任何幫助,非常感謝::)

在這里使用 IN 合適嗎?

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/in-transact-sql?view=sql-server-ver15

I'm not sure how you're going from C# to SQL here, but if you're just executing SQL you could concatenate a string of selected brands and use that in your select. 要點是你想要一個看起來像的 select

SELECT *
FROM Device AS d
WHERE d.brandName IN ('Apple', 'Alcatel')

暫無
暫無

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

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