以下哪个查询更快(LIKE vs CONTAINS)?
SELECT * FROM table WHERE Column LIKE '%test%';
Run Code Online (Sandbox Code Playgroud)
要么
SELECT * FROM table WHERE Contains(Column, "test");
Run Code Online (Sandbox Code Playgroud) 我有一个SQL查询如下.
Select * from table
where name like '%' + search_criteria + '%'
Run Code Online (Sandbox Code Playgroud)
如果search_criteria ='abc',它将返回包含xxxabcxxxx
哪个数据的数据.
但是如果我的search_criteria ='abc%',它仍将返回包含的数据xxxabcxxx
,但不应该是这种情况.
我该如何处理这种情况?
这是我的查询导致语法错误:
SELECT *
FROM account_invoice,sale_order
WHERE sale_order.name LIKE %account_invoice.origin%
Run Code Online (Sandbox Code Playgroud)
account_invoice.origin字段包含sale_order.name的文本以及其他文本,因此我需要在account_invoice.origin字符串中的任何位置匹配sale_order.name字符串.
我正在使用PostgreSQL 8.4.
我在SQL Server 2012中有这个表:
Id INT
DomainName NVARCHAR(150)
Run Code Online (Sandbox Code Playgroud)
并且该表具有这些DomainName值
这个值:
mail.othersite.com
Run Code Online (Sandbox Code Playgroud)
我需要选择字符串以列值结束的行,对于此值,我需要获取行no.3 othersite.com
它是这样的:
DomainName Like '%value'
Run Code Online (Sandbox Code Playgroud)
但反过来......
'value' Like %DomainName
Run Code Online (Sandbox Code Playgroud) 我想做一个包含'like'和'not like'的查询.
当前示例:我希望所有内容都以"1 |%"开头,但不是"1 | 6 | 199 |%"或"1 | 6 | 200 |%".
当前查询:
'SELECT * FROM `links` WHERE `category` LIKE '1|%' NOT LIKE '1|6|199|%','1|6|200|%' ORDER BY `score` DESC LIMIT 9'.
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有小费吗?谢谢
我一直以为你可以OR
在一个LIKE
语句中用来查询MySQL中的东西.所以,如果我想将一行中的多个字段与1个关键字或术语进行比较:
SELECT * FROM MyTable WHERE Column1 OR Column2 LIKE '%keyword%';
Run Code Online (Sandbox Code Playgroud)
如果我有一系列的词比较:
SELECT * FROM MyTable WHERE Column1 OR Column2 LIKE '%keyword1%'
AND Column1 OR Column2 LIKE '%keyword2%';
Run Code Online (Sandbox Code Playgroud)
但是,我不相信语法是正确的.是否有一种有效的方法可以将此写为:
SELECT * FROM MyTable WHERE Column1 LIKE '%keyword1%' OR Column2 LIKE
'%keyword1%' AND Column1 LIKE '%keyword2%' OR Column2 LIKE '%keyword2%';
Run Code Online (Sandbox Code Playgroud)
我正确地谈到这个吗?
两个月前我有一个站点切换到https://www.example.com,它失去了所有'喜欢'的数量.
即使我使用facebook fql查询,它现在在http://和https:/之间具有相同的计数
有人知道这是不是facebook的bug?或者有一个解决方法来检索旧的计数?
非常感谢您的帮助.
我知道我可以编写一个查询,它将返回给定列中包含任意数量值的所有行,如下所示:
Select * from tbl where my_col in (val1, val2, val3,... valn)
Run Code Online (Sandbox Code Playgroud)
但是,如果val1
,例如,可以出现在任何地方my_col
,其数据类型为varchar(300),我可能会写:
select * from tbl where my_col LIKE '%val1%'
Run Code Online (Sandbox Code Playgroud)
有没有办法梳理这两种技术.我需要搜索可能出现在列的自由格式文本中的任何位置的30个可能值.
以下列方式组合这两个语句似乎不起作用:
select * from tbl where my_col LIKE ('%val1%', '%val2%', 'val3%',....)
select * from tbl where my_col in ('%val1%', '%val2%', 'val3%',....)
Run Code Online (Sandbox Code Playgroud) 我们正在运行许多产品搜索一个包含部分匹配条形码的大型目录.
我们从简单的查询开始
select * from products where barcode like '%2345%'
但这需要太长时间,因为它需要全表扫描.我们认为全文搜索将能够帮助我们使用contains.
select * from products where contains(barcode, '2345')
但是,似乎包含不支持查找部分包含文本的单词,但只支持单词匹配或前缀.(但在这个例子中我们正在寻找'123456').
我有几百万个域名的SQL表.但现在当我搜索让我们说
SELECT *
FROM tblDomainResults
WHERE domainName LIKE '%lifeis%'
Run Code Online (Sandbox Code Playgroud)
获得结果需要10分钟以上.我试过索引,但没有帮助.
存储这数百万条记录并在短时间内轻松访问这些信息的最佳方法是什么?
到目前为止,大约有5000万条记录和5列.
sql-like ×9
sql ×4
sql-server ×4
contains ×2
mysql ×2
facebook ×1
oracle ×1
performance ×1
postgresql ×1
select ×1