从四列中的一列中选择SQL?

时间:2018-01-13 23:38:30

标签: sql

我有一个包含四列的数据库表:

Column 1 | Column 2 | Column 3 | Column 4

这四列中的每一列的价值都是($ 3.99)价格,或者是'已列出'的价值。

我想知道找到以下内容的最佳SQL查询:

  • 获取所有四行等于“已列出”

  • 的所有行
  • 获取部分列中有价格且部分列值为“已列出”的所有行

3 个答案:

答案 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替换为您的列名。同时更改您的表名。