如何参数化包含IN具有可变数量参数的子句的查询,比如这个?
SELECT * FROM Tags
WHERE Name IN ('ruby','rails','scruffy','rubyonrails')
ORDER BY Count DESC
Run Code Online (Sandbox Code Playgroud)
在此查询中,参数的数量可以是1到5之间的任何值.
我不希望为此(或XML)使用专用存储过程,但如果有一些特定于SQL Server 2008的优雅方式,我对此持开放态度.
使用LIKE在MySQL中很常见.我们这样使用它:WHERE field LIKE '%substring%'.我们有一个子字符串,字段有完整的字符串.但我需要的是相反的事情.我在现场有子串.所以,我想要包含字符串子串的行.假设该表是:
----+-------------------
id | keyword
----+-------------------
1 | admission
----+-------------------
2 | head of the dept
----+-------------------
Run Code Online (Sandbox Code Playgroud)
我有一个来自用户的字符串:Tell me about admission info.我需要这样一个MySQL查询返回,admission因为这是用户字符串的子字符串.就像是:
SELECT keyword FROM table WHERE (keyword is a substring of 'Tell me about admission info')
Run Code Online (Sandbox Code Playgroud)
提前致谢.
在这个问题中解决LIKE了SQL中反向操作的问题,例如,如果字段名称是"Peter Johnson",我们可以通过这样的查询找到它:
select name from user where "Mr. Peter Johnson" like CONCAT('%', name, '%')
Run Code Online (Sandbox Code Playgroud)
有没有办法在Django Q对象中做这样的事情(我正在构建一个大的查询,所以使用原始SQL查询将不合理)?
Django允许我这样做:
chair = Chair.objects.filter(name__endswith='hello')
Run Code Online (Sandbox Code Playgroud)
但我想这样做:
chair = Chair.objects.filter(name__isendof='hello')
Run Code Online (Sandbox Code Playgroud)
我知道查找__isendof不存在.但是我想要这样的东西.我希望它与之相反__endswith.它应该找到所有这样的椅子'hello'.endswith(chair.name).
可能在Django?ORM操作比SQL操作更好.
好吧,我有一个值,我想检查数据库中的潜在匹配(在一个varchar字段中),所以我写了类似的东西:
SELECT * FROM table WHERE column LIKE "%value%"
Run Code Online (Sandbox Code Playgroud)
如果值类似于"test"并且列具有"这是一个测试"的值,那么它将起作用,但如果它被反转,那么我将不会得到匹配,我尝试了以下方面的事情:
SELECT * FROM table WHERE CONCAT("%",column,"%") LIKE "value"
Run Code Online (Sandbox Code Playgroud)
但不知道到底该如何用谷歌来表达我需要的回复,请帮忙!
我不知道我的头衔是否正确告诉我试图做什么,但在这里当然是一个例子.
例如
我有一个字段为id |的数据库 动物| 人口...这都是关于动物领域的.我有一个像'动物是狐狸'或'狐狸是棕色'的字符串.
我想通过一个mysql查询传递这个字符串,这将返回我的'狐狸'作为匹配.
先感谢您!
缺口