2012-05-30 54 views
13

SQL能够做些什么:SELECT * FROM table WHERE column = everythingSQL WHERE column = everything

+2

只是删除字符串的一部分。如果你不在乎column'价值的' - 甚至不把它'where' – zerkms

+0

如果你不需要一列然后删除整个WHERE定义 –

+0

FWIW(有些人可能会觉得这个利息):如果WHERE' '是必需的(因为,有时候,有时候反复无常的系统会需要它),那么'WHERE 1 = 1'将会“匹配所有东西”。同样,这可以扩展(再次,对于那些多变的系统)'WHERE 1 = 1 OR C ='不要在意......' – 2012-05-30 22:40:27

回答

13

你的问题让3个intrepretations:

  1. 你不关心列:从where子句放下它(或产品总数下降的where子句,如果这是唯一的子条款)
  2. 你想要设置列,你不在乎什么:使用WHERE column IS NOT nULL
  3. 你想要的搜索,这也可以从一个简单的SQL模板显示所有记录:SELECT * FROM table WHERE column LIKE '%$searchterm%'
6

什么都可以吗?

你可以使用通配符我猜。

SELECT * FROM table WHERE column LIKE "%" 
+3

不,你错了。 '=“%”'意味着 – zerkms

+0

“正好等于百分之一的char值”而你错了一次,因为它不包括'NULL'值 – zerkms

+1

是什么的呢?然后只是'SELECT * FROM table'。如果你不需要过滤器,那么不要使用'WHERE'子句。 – nico

1

您是否正在寻找IN标准运算符? SELECT * from(其中(1,2,3,4,5)中的列或('value','value2','value3')中的列)

17
SELECT * FROM table 

如果你动态生成SQL,这是

SELECT * FROM table WHERE 1=1 

1=1占位符允许你返回的所有记录,或者如果你返回一个子集或需要额外的条件语句代替实际情况。

请参见
Why would someone use WHERE 1=1 AND <conditions> in a SQL clause?

+0

但如果它是一份准备好的声明,1 = 1将无法正常工作,因为它会自动逃脱,不是吗? – JayIsTooCommon

+0

如果它是一个准备好的语句,它不是已经有一个WHERE? –

+0

我喜欢1 = 1解决方案! – KinoP

2

这是迟,但可能是帮助他人

你可以试试这个。

where 
    isnull([column], '') = CASE WHEN @column IS NULL THEN isnull([column], '') ELSE @column END 
相关问题