标签: where-clause

为什么sql查询有"where 1 = 1"

我正在经历一些我正在维护的查询,并且程序员已经向我提出了"其中1 = 1"的查询,似乎总是评估为真.

这有好处吗?

重复: 为什么有人在SQL子句中使用WHERE 1 = 1 AND?

这个问题不是这个问题的答案.

WHERE子句:

select * from table where 1=1 and sStatus not in ('status1','status2','status3')
Run Code Online (Sandbox Code Playgroud)

没有编程或如果声明推动和在那里.直接查询.

如果你可以取消关闭它,我想知道是否有目的,以便我可以重写并删除1 = 1,如果没有必要.

sql where-clause

8
推荐指数
4
解决办法
4万
查看次数

在mysql的'WHERE'子句中评估多个'IN'表达式

@Cesar要求更新.希望我明白你想要什么,如果没有,请恢复.Quassnoi.

如果我这样做一个SQL查询:SELECT * FROM TABLE_NAME WHERE b IN (2, 7) AND c IN (3, 9),我可以假设MySQL只匹配每个列表中具有相同编号的元素的对吗?

也就是说,(2, 3),(7, 9),...?

例如,假设我们有一个这样的表:

 +----------+----------+----------+
 |    PK    |     b    |     c    |
 +----------+----------+----------+
 |     1    |     2    |     3    |
 +----------+----------+----------+
 |     2    |     5    |     4    |
 +----------+----------+----------+
 |     3    |     7    |     9    |
 +----------+----------+----------+
 |     4    |     7    |     4    |
 +----------+----------+----------+
 |     5    |     2    |     9    |
 +----------+----------+----------+ …

mysql sql evaluation where-clause

8
推荐指数
3
解决办法
6784
查看次数

使用OR运算符时正确索引

我有这样的查询:

SELECT fields FROM table
WHERE field1='something' OR field2='something' 
OR field3='something' OR field4='something'
Run Code Online (Sandbox Code Playgroud)

为此查询索引此类表的正确方法是什么?

像这样的查询需要一整秒才能运行!我有1个索引,其中包含所有4个字段,所以我认为mysql会做这样的事情:

浏览索引中的每一行,想一想:field1是什么?field2怎么样?字段3?字段4?好的,不,转到下一行.

mysql indexing where-clause

8
推荐指数
1
解决办法
3777
查看次数

LINQ是否可以动态添加where子句

我想用不同的密钥搜索我的数据库.根据输入,10键可能有1个键.有没有办法动态地向我的Linq查询添加OR/AND子句?

 keys[k] // I have my keys in this array 
 var feedList = (from feed in ctx.Feed
                 where feed.content.contains(keys[0]) 
                       && feed.content.contains(keys[1])
                       && ... // continues with the keys.length
                 select new {
                    FeedId = feed.DuyuruId,
                    FeedTitle = feed.FeedTitle,
                    FeedContent = feed.FeedContents,
                    FeedAuthor = user.UserName + " " +User.UserSurname
 }
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework where-clause

8
推荐指数
2
解决办法
1万
查看次数

在Where子句中使用Zf2 NOT IN表达式

我试图从另一个表中尚未出现的表中获取结果.为此,我在where子句中使用subQuery和NOT IN表达式.正常的sql工作如下:

SELECT `products`.* FROM `products` WHERE `products`.`pro_id` **NOT IN** (
SELECT `product_collection`.`pro_id` AS `pro_id` FROM `product_collection` WHERE `coll_id` = '6' ) AND products.pro_id IN (55,56,57,62)
Run Code Online (Sandbox Code Playgroud)

我正在为项目使用zf2.问题是我不知道如何在where子句中使用NOT IN表达式.我们可以在Where子句中使用where-> in()作为IN表达式.例如.

//$productIds is an array
//$collectionId is an id

$subSelect = $this->getRawSql()->select('product_collection');
$subSelect -> columns(array('pro_id'));
$subSelect -> where(array('coll_id'=>$collectionId));

$select = $this->getRawSql()->select('products');
$select -> **where->in**('products.pro_id', $subSelect)
        -> where->in('products.pro_id',$productIds);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用NOT IN表达式.

where-clause zend-framework2

8
推荐指数
1
解决办法
1万
查看次数

使用insertWithOnConflict进行更新或插入

我需要插入或更新,我发现SQLiteDatabase的方法insertWithOnConflict,但我不知道如何检查该条目是否已存在.

从理论上讲,我需要一个"Where"参数来检查某个ID是否存在,如果存在,它应该替换所有其他列.

这就是我现在所拥有的,但我不认为第二个参数是唯一的id

    ContentValues args = new ContentValues();
    args.put(AppDatabase.COLUMN_ID, entry.getId());
    args.put(AppDatabase.COLUMN_NAME, entry.getAppname());
    args.put(AppDatabase.COLUMN_URL, entry.getAppUrl());
    database.insertWithOnConflict(AppDatabase.TABLE_FILELIST, COLUMN_ID, args, SQLiteDatabase.CONFLICT_REPLACE);
Run Code Online (Sandbox Code Playgroud)

我该如何管理这种行为?

sqlite android insert-update where-clause

8
推荐指数
1
解决办法
9248
查看次数

Linq where子句具有多个条件和null检查

我正在尝试检查linq中的日期是否为空,如果没有检查它的未来日期.

QuestionnaireRepo.FindAll(q => !q.ExpiredDate.HasValue || q.ExpiredDate >DateTime.Now).OrderByDescending(order => order.CreatedDate);
Run Code Online (Sandbox Code Playgroud)

我需要第二次检查才能申请,如果第一次是真的.我使用单个存储库模式,FindAll接受了where子句

有任何想法吗?这里有很多类似的问题,但没有给出答案,我对Linq很新,你可能已经猜到了:)

编辑:我得到了我现在需要的结果,但在某些情况下它将检查>条件值为null值.这不是坏事吗?

linq where-clause

7
推荐指数
1
解决办法
4万
查看次数

SQL - 在当前日期/时间之后选择记录

所以我有一张表格如下

Date       Time        Field3        Field4 - etc.
--------------------------------------------------
05/07/11   17:45       blah          blah
05/07/11   19:45       blah          blah
08/07/11   17:30
08/07/11   19:00
09/07/11   19:00
Run Code Online (Sandbox Code Playgroud)

等等

我目前在我的WHERE声明中有一条规则,因此显示今天之间的所有日期(所以它将是05/07/11直到3年后的同一日期05/07/14).

我还想在WHERE语句下添加另一个规则,以便它只显示当前时间前两小时的时间(当前日期等于表中的日期).

所以在05/07/11 19:00它应该显示:

Date       Time        Field3        Field4 - etc.
--------------------------------------------------
05/07/11   17:45       blah          blah
05/07/11   19:45       blah          blah
08/07/11   17:30
08/07/11   19:00
09/07/11   19:00
Run Code Online (Sandbox Code Playgroud)

在同一天21:46,现在应该显示:

Date       Time        Field3        Field4 - etc.
--------------------------------------------------
08/07/11   17:30
08/07/11   19:00
09/07/11   19:00
Run Code Online (Sandbox Code Playgroud)

我将如何在我的SQL中执行此操作?我认为它必须是if then或case当时声明,但我还没有能够解决它?

ALSO日期是在VB.Net中生成的,所以时间也是如此.当前的sql(和工作)代码是:

SELECT m.MatchID Manage, m.Date, m.Time, t.TeamCode "Home", b.TeamCode "Away", 
g.GroundName "Ground", ( SUBSTRING(u.GivenName,1,1) + '. …
Run Code Online (Sandbox Code Playgroud)

sql time where-clause

7
推荐指数
2
解决办法
3万
查看次数

如何在Entity Framework中动态构造Where Expression?

我已经看过这个关于如何在Entity Framework中动态创建OrderBy表达式的答案.但我还想构建一个动态Where表达式.有点像这样:

public IEnumerable<InventoryItem> GetAll(string filterBy, object value)
{
  var results = new List<InventoryItem>();
  using (var db = new InventoryDb())
  {
    if (QueryHelper.PropertyExists<InventoryItem>(filterBy)) 
    {
      var query = db.rri_InventoryItems.WhereByProperty(filterBy, value); 

      foreach(var item in query.Where(expr))
      {
        results.Add(ConvertItem(item));
      }   
    }            
  }
  return results;
}
Run Code Online (Sandbox Code Playgroud)

传入属性以过滤by和值作为ab对象.Queryable有两种方法,哪里都有两个参数,所以我甚至不确定哪一个是正确的.

而且在这一点上我失去了一点点.我不确定如何重构原始的OrderByProerty方法来提供WhereByProperty.我知道我在这里完全错了.我不知道该怎么做.

理想情况下,我想通过提供可用于使用andsor运算符构建查询的对象集合来进一步扩展它.

linq entity-framework expression-trees where-clause

7
推荐指数
1
解决办法
2528
查看次数

在 PostgreSQL 的 WHERE 子句中使用函数结果

我试图在where子句中使用函数执行的结果,但没有成功:

SELECT clinics.*, distance_between_objects(1, id, 7, 3) AS dist FROM clinics WHERE dist<=1;
Run Code Online (Sandbox Code Playgroud)

给我:Column "dist" does not exists。引用它就像:

SELECT clinics.*, distance_between_objects(1, id, 7, 3) AS dist FROM clinics WHERE "dist"<=1;
Run Code Online (Sandbox Code Playgroud)

也没有帮助。请告知Postgres是否有可能在WHERE子句中使用函数结果而不调用它两次?谢谢!

postgresql select sql-function where-clause

7
推荐指数
1
解决办法
8101
查看次数