[英]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)"
+ ")";
目標:
用戶可以 select 他們喜歡的品牌,這將執行 SELECT 命令來查找所有符合他們喜好的設備。 用戶也可以 select “任何品牌”,這是一個簡單的 SELECT * 命令。
我試過的:
成功:一個 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.