我有一个表跟踪链接结构如下:
id
domain_name
traffic_count
enabled
created_at
Run Code Online (Sandbox Code Playgroud)
假设我有一个domain_name为"some-domain.com"的记录,然后让我说我想找到具有该域的记录,除了我必须经历的是该域的子域.
我基本上想要这样做:
SELECT * FROM links 'subdomain.some-domain.com' LIKE %domain_name%"
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我正在为一个like适用于以下例子的运营商而苦苦挣扎
言语可能是
MS004 -- GTER
MS006 -- ATLT
MS009 -- STRR
MS014 -- GTEE
MS015 -- ATLT
Run Code Online (Sandbox Code Playgroud)
什么是类似的运算符Sql Server用于提取包含ms004 and ATLT像上面的单词或任何其他组合的数据.
我尝试使用多个例如
where column like '%ms004 | atl%'
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
编辑
结果应该只是两个单词的组合.
SELECT * FROM cars WHERE carBrand LIKE '%alfa%' OR carModel LIKE '%alfa%'
Run Code Online (Sandbox Code Playgroud)
我放在那句话之后的所有东西都被忽略了.我本希望能够做到这一点.
SELECT * FROM cars
WHERE carBrand LIKE '%alfa%'
OR carModel LIKE '%alfa%' AND carType = 'truck'
Run Code Online (Sandbox Code Playgroud)
这只是被忽略了.
AND carType = 'truck'
Run Code Online (Sandbox Code Playgroud)
为什么?
有人问这里 如何只得到一个数字值:
所以,如果表是:
DECLARE @Table TABLE(
Col nVARCHAR(50)
)
INSERT INTO @Table SELECT 'ABC'
INSERT INTO @Table SELECT '234.62'
INSERT INTO @Table SELECT '10:10:10:10'
INSERT INTO @Table SELECT 'France'
INSERT INTO @Table SELECT '2'
Run Code Online (Sandbox Code Playgroud)
然后 - 期望的结果是:
234.62
2
Run Code Online (Sandbox Code Playgroud)
但是当我测试这个查询时:
SELECT * FROM @Table WHERE Col LIKE '%[0-9.]%' --expected to see only 234.62
Run Code Online (Sandbox Code Playgroud)
这显示了 :
234.62
10:10:10:10
2
Run Code Online (Sandbox Code Playgroud)
问题#1
怎么10:10:10:10 , 2满足条件?
问题2
SELECT * FROM @Table WHERE Col NOT LIKE '%[^0-9.]%' …Run Code Online (Sandbox Code Playgroud) 我不太明白......
有人可以给我一个提示,说明为什么查询B + C的结果不会累加到A?
我首先想到的是,由于拼写错误,下划线(应该是10)在B和C之间不匹配,但在复制/粘贴后我有点无奈.A的结果高于B + C的总和.
在语句B和C中是否存在某种我不知道的隐含的不同?
-- statement A
select count(*) from mytable;
-- statement B
select count(*) from mytable where mycolumn like '__________';
-- statement C
select count(*) from mytable where mycolumn not like '__________';
Run Code Online (Sandbox Code Playgroud) 我在使用AND/OR运算符时遇到了一些麻烦.这很容易,但我遇到以下情况有问题:
WHERE (ID = '111') OR (charge_desc LIKE '%garn%') OR
(charge_desc LIKE '%levy%') OR
(charge_desc LIKE '%exe%')
Run Code Online (Sandbox Code Playgroud)
基本上,我试图仅根据ID 111 找到关键字.但是,当前查询发生的情况是,它会根据一堆不同的ID来查找这些关键字.我试图操纵括号,我看到了问题.因为它不能是"111 OR LIKE XYZ ..."但它不能是AND,因为如果你做AND,那么它会根据这三个标准完全找到那个ID.
我希望做ID 111和查找garn或levy或exe-不是"和",但它应该是每一个来了,但只针对111的变化.
我希望这是有道理的.我对括号感到满意.
我刚试过这个:
WHERE ID = 111
HAVING garn or levy or exe
Run Code Online (Sandbox Code Playgroud)
请原谅我在那里缺乏语法.:)
我检查了每个表的排序规则类型,并且它们具有相同的排序规则.
错误:#1271 - 操作'UNION'的非法混合排序
请参阅以下查询:
$query = "(SELECT id, product_name, description, 'tbl_landt' as type FROM tbl_landt WHERE product_name LIKE '%" .
$keyword . "%' OR description LIKE '%" . $keyword ."%')
UNION
(SELECT id, name, null, 'tbl_land_cat' as type FROM tbl_land_cat WHERE name LIKE '%" . $keyword . "%')
UNION
(SELECT tbl_sub_cat.id, tbl_sub_cat.name AS cat_name, null, 'tbl_sub_cat' as type FROM tbl_sub_cat WHERE name LIKE '%" . $keyword . "%')
UNION
(SELECT id, name, null, 'tbl_exl_cat' as type FROM tbl_exl_cat WHERE …Run Code Online (Sandbox Code Playgroud) 我在java程序中的多列中搜索了mysql查询中的一个单词.列数是可变的.这个查询是正确的:
select * from customer with (city, name) like%'adelaide'%
Run Code Online (Sandbox Code Playgroud) 我有这样的查询:
SELECT * FROM mytable where description like %STRING%
Run Code Online (Sandbox Code Playgroud)
问题是:当我搜索JAVA它时,甚至还会返回带有的记录JAVAscript。
但是,JAVA!= JavaScript,对吗?我该如何解决?
我不能让sp_executesql使用一个非常简单的语句.
当我这样做
select * from vwChassisHistory t where t.ChassisNumber like '%1234%'
Run Code Online (Sandbox Code Playgroud)
正如我所料,它会重新调整214行
但是当我这样做的时候
exec sp_executesql
N'select * from vwChassisHistory t where t.ChassisNumber like ''%@ChassisNumber%'' ',
N'@ChassisNumber varchar(4)',@ChassisNumber='1234'
Run Code Online (Sandbox Code Playgroud)
它返回0行
所以我必须在这里犯一个非常愚蠢的错误,但我看不到它.
如何使用sp_executesqla like和a parameter?
我注视在这,但是这个问题是关于动态地构建语句,以便它不会帮我
还这并不有我一个答案
编辑
为了SqlCommand在接受的答案中生成sql,我不得不修改代码
string chassisNumber = "1234";
string sql = "select * from vwChassisHistory t ";
string where += "where t.ChassisNumber like '%@ChassisNumber%' ";
Run Code Online (Sandbox Code Playgroud)
对此
string where = "where t.ChassisNumber like '%' + @ChassisNumber + '%' ";
Run Code Online (Sandbox Code Playgroud)