我有一个包含四列的数据库表:
Column 1 | Column 2 | Column 3 | Column 4
这四列中的每一列的价值都是($ 3.99)价格,或者是'已列出'的价值。
我想知道找到以下内容的最佳SQL查询:
获取所有四行等于“已列出”
获取部分列中有价格且部分列值为“已列出”的所有行
答案 0 :(得分:1)
尝试此查询!
当所有四行等于'已列出' :强>
SELECT *
FROM [table name]
WHERE
Column1='Listed'
AND
Column2='Listed'
AND
Column3='Listed'
AND
Column4='Listed'
当某些列具有价格且某些列具有“列出的' :强>
SELECT *
FROM [table name]
WHERE
(
Column1='Listed'
OR
Column2='Listed'
OR
Column3='Listed'
OR
Column4='Listed'
)
AND
(
Column1 LIKE '$%.%'
OR
Column2 LIKE '$%.%'
OR
Column3 LIKE '$%.%'
OR
Column4 LIKE '$%.%'
)
答案 1 :(得分:0)
这些实际上是相当简单的查询
选择列出所有4列的位置。
SELECT * FROM {table}
WHERE Column1='Listed' AND Column2='Listed' AND Column3='Listed' AND Column4='Listed'
选择至少列出一列的位置,并且至少有一列是价格(数字)
SELECT * FROM {table}
WHERE (Column1='Listed' OR Column2='Listed' OR Column3='Listed' OR Column4='Listed')
AND (ISNUMERIC(Column1) OR ISNUMERIC(Column2) OR ISNUMERIC(Column3) OR ISNUMERIC(Column4))
像这样的东西可以给你你想要的东西,但不能保证,因为不同的数据库引擎使用一些稍微不同的SQL。
答案 2 :(得分:0)
我认为你应该这样做:
SELECT * FROM `testing` WHERE Col1='Listed' AND Col2='Listed' AND Col3='Listed' AND Col4='Listed'
对于“OR”声明:
SELECT * FROM `testing` WHERE Col1='Listed' OR Col2='Listed' OR Col3='Listed' OR Col4='Listed'
您需要将Col1,Col2,Col3和Col4替换为您的列名。同时更改您的表名。