我需要创建一个查询,检查字段(字符串)是否包含运行时提供的一个或多个单词.
基本上我需要能够问一个WhereOr问题.在处理LinqToSql时,这似乎应该是一个常见问题.
我找到了以下参考但是没有意义 - 并且不知道如何在我的项目中使用它.
我尝试了以下循环:
var query = from d in context.Domains select d;
for (int i = 0; i < words.Length; i++)
{
query = query.Where(d => d.Name.Contains(words[i]));
}
Run Code Online (Sandbox Code Playgroud)
但这会构建一个带有WHERE AND子句的SQL查询,而不是OR
我有一个基于一组条件收集信息的查询.基本上我想知道一个位置当天是否支付了超过50美元或评论部分中有"过滤器"一词......
我的查询是:
SELECT Store_Id, Paid_Out_Amount, Paid_Out_Comment, Paid_Out_Datetime, Update_UserName, Till_Number
FROM Paid_Out_Tb
WHERE (Store_Id = 1929) AND (Paid_Out_Datetime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()) - 1, 0)) AND (Paid_Out_Datetime < DATEADD(day, DATEDIFF(day, 0,
GETDATE()), 0)) AND (Paid_Out_Amount > 50) OR
(Paid_Out_Comment LIKE N'%' + 'Filter' + '%')
Run Code Online (Sandbox Code Playgroud)
问题是它返回460结果,应该只返回2.
我正在经历一些我正在维护的查询,并且程序员已经向我提出了"其中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,如果没有必要.
当没有匹配时,LINQ函数究竟返回了什么?以Where方法为例,例如:
var numbers = Enumerable.Range(1, 10);
var results = numbers.Where(n => n == 50);
Run Code Online (Sandbox Code Playgroud)
在这一点上会有什么结果?
我有一个简单的数据库,有网站,每个网站都有一堆帖子.
我正在尝试获取某个站点的所有"公共"帖子(我有一个名为site的变量,已经是EF提供的一个实例)
第一个显而易见的事情是:
var posts = from post in site.Posts
where post.Public == true
orderby post.PublicationTime descending
select post;
Run Code Online (Sandbox Code Playgroud)
这给我带来了我想要的东西,但是在研究SQL Server Profiler时,WHERE只过滤Public字段,而不是Site.实际上,在SQL Server中运行Profiler捕获的查询确实会带回所有站点中的所有帖子(这显然是在ASP.Net方面稍后进行过滤).
然后我尝试了:
var posts = from post in db.Posts
where post.Site == site && post.Public == true
orderby post.PublicationTime descending
select post;
Run Code Online (Sandbox Code Playgroud)
结果相同.
我在这里做了一些根本愚蠢的事情吗?
实体框架是否总是在客户端进行过滤?
谢谢!
丹尼尔
好像这么简单.我需要使用LIKE运算符指定WHERE条件,并在表达式中包含一个选项卡.
SELECT * FROM table WHERE field LIKE '%Run1[TAB]%';
Run Code Online (Sandbox Code Playgroud)
我试过\ t,\ t,%t和char运算符.
我在Sqlite工作.
谢谢.
我需要插入或更新,我发现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)
我该如何管理这种行为?
我有一长串大约 5000 多个 ID(数字)。
ID
4
5
6
9
10
14
62
63
655
656
657
658
659
661
662
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法调用从 txt 文件中读取 ID 而不是在查询中输入所有 5000?
例子
SELECT count(*) from table where ID in (file1.txt)
Run Code Online (Sandbox Code Playgroud) 使用Sequelize版本实现:"^ 4.15.0"
我试图从包括协会的2级添加where条件.
Model1.find({
include: [
{
model: Model2,
as: 'model2_alias',
attributes: [
'model2_id'
],
include: [{
model: Model3,
as: 'model3_alias',
attributes: [
'model3_id'
]
}]
}
],
where: {
model3_alias.id: { [Op.in]: [1, 2, 3] }
}
});
Run Code Online (Sandbox Code Playgroud)
我累了这个方法:
where: {
'$model2_alias.model3_alias.id$': { [Op.in]: [1, 2, 3] }
}
Run Code Online (Sandbox Code Playgroud)
但是给出了model2_alias.model3_alias.id未定义/未找到的错误.
上面的内容确实有效,因为'$model2_alias.id$': { [Op.in]: [1, 2, 3] }语法必须写入,但如何进一步降低级别.
在任何MySQL管理工具中执行形成的SQL语句时,会给出正确的结果,因此where我尝试实现的条件也没有错.
我在这里缺少的任何想法或仅适用于一个级别.然后该怎么做更多级别?
模块A有一个成员变量 name c,带有一个 WHERE 子句:
unit class A;
my \MAXVALUE = 1000_000;
has $.c where 0 < * < MAXVALUE;
method gist() {
"$!c";
}
Run Code Online (Sandbox Code Playgroud)
设置RAKULIB环境变量:
set RAKULIB="d:\scripts\Raku\A\lib" # Windows
export RAKULIB="/opt/scripts/Raku/A/lib" # Linux
Run Code Online (Sandbox Code Playgroud)
像这样使用模块A:
use A;
my $a = A.new(c => 1);
say $a;
Run Code Online (Sandbox Code Playgroud)
但得到类型检查错误:
Type check failed in binding to parameter '<anon>'; expected Any but got Mu (Mu)
in whatevercode at D:\scripts\Raku\Raku\A\lib\.precomp\C6EB86CB837D3BCAAA3D85B66CE337C820700C08\6D\6DCD4CE23D88E2EE9568BA546C007C63D9131C1B line 1
in block <unit> at basic.rakutest line 3
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?
乐库版本: …
where-clause ×10
sql ×4
c# ×2
sqlite ×2
.net ×1
android ×1
associations ×1
linq ×1
linq-to-sql ×1
nested-query ×1
node.js ×1
predicate ×1
raku ×1
sequelize.js ×1
where ×1
where-in ×1