标签: sql-like

在MYSQL中使用带有多个字段和空格的通配符

我在两个领域寻找任何类似的比赛时遇到了一些麻烦.例如,我有一个包含值的表:

CAR MAKE   CAR MODEL
Ford       Mustang (Shelby)
Toyota     Corolla
Seat       Leon

etc etc.
Run Code Online (Sandbox Code Playgroud)

我想通过搜索以下任何组合来获得结果"Ford,Mustang(Shelby)":

  • 野马
  • 谢尔比
  • 福特野马

    或任何其他组合.

这可能吗?我有一个很好的搜索,但很难找到搜索术语来描述我的意思.

mysql sql search sql-like

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

SQL:如果使用字符类[0-9],为什么LIKE不起作用?

假设我有一张桌子:

当前表格:

title_id        title_name               title_qty
   1       A.I. Artificial Intelligence      2
   2       Batman Begins                    40
   3       2012                              7
   4       101 Dalmatians                   23
   5       Act of Valor                      1
   6       Batman                           50
   7       20 Million Miles to Earth       340
Run Code Online (Sandbox Code Playgroud)

我希望得到一个输出:

期望的输出:

   title_id        title_name               title_qty  title_char
       4          101 Dalmatians                23          #
       7          20 Million Miles to Earth     340         #
       3                2012                    7           #
       1          A.I. Artificial Intelligence  2           A
       5          Act of Valor                  1           A
       6          Batman                        50          B
       2          Batman Begins                 40          B …
Run Code Online (Sandbox Code Playgroud)

mysql sql case sql-like

6
推荐指数
1
解决办法
3938
查看次数

"LIKE"运算符在MS Access中工作,但不在ADO中工作

我正在尝试使用带有星号的"Like"过滤记录,它在使用Access 2010返回许多记录时起作用.我很难过,为什么它与ADO一起使用时没有返回任何内容.代码包括多个表和列,以便进行故障排除我做了一个简单的查询.这是代码:

strsql = "SELECT tproducts.Prod_Name FROM tproducts " _
& " WHERE tproducts.Prod_Name Like " & Chr(34) & "SO*" & Chr(34)

Set cn = New ADODB.Connection
cn = connString
cn.Open
Set rs = New ADODB.Recordset
rs.Open strsql, cn, adOpenStatic, adLockOptimistic

' test here
iRecCount = rs.RecordCount
rs.MoveFirst
Run Code Online (Sandbox Code Playgroud)

Recordcount返回-1.

当"Like"被"equals"替换时,它返回正确的记录,所以我确信它能够连接到数据库,例如:

strsql = "SELECT tproducts.Prod_Name FROM tproducts " _
& " WHERE tproducts.Prod_Name = " & Chr(34) & "SONY Vaio SVD13213CXB" & Chr(34)
Run Code Online (Sandbox Code Playgroud)

有没有一种特殊的方法在ADO中使用Like运算符?

我可以通过哪些其他方式过滤以获得与使用"赞"相同的结果?例如,要查找所有" SVD "产品?

vb6 ms-access ado sql-like

6
推荐指数
1
解决办法
4916
查看次数

通过索引查询慢速搜索LIKE%MYSQL

我有100万行这么大的表.表的结构

id         int          INDEX(not primary not unique just index)
lang_index varchar(5)   INDEX
name       varchar(255) INDEX
enam       varchar(255) INDEX
Run Code Online (Sandbox Code Playgroud)

好.我查询

1查询

"SELECT name FROM table WHERE lang_index='en' AND name LIKE 'myname%'"
Run Code Online (Sandbox Code Playgroud)

这张大桌的速度还可以.大约0.02秒.

我尝试2查询

"SELECT name FROM table WHERE lang_index='en' AND (name LIKE 'myname%' OR enam LIKE 'myname%')"
Run Code Online (Sandbox Code Playgroud)

在230秒左右非常慢!

然后我尝试这3个查询

"SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'"
Run Code Online (Sandbox Code Playgroud)

速度太棒了.大约0.02秒.

然后我更快地爆炸我的第二个查询两个查询(1和3查询).大约0.04秒但不简单.

为什么我的查询很慢?两个查询比一个查询快得多.我需要这样做我"SELECT name FROM table WHERE lang_index='en' AND (name LIKE 'myname%' OR enam LIKE 'myname%')" 怎么能让它更快?

mysql indexing performance sql-like

5
推荐指数
1
解决办法
7334
查看次数

Objective-C sqlite在LIKE子句中添加查询参数

sqlite通过C API在Objective-C中使用.我的应用程序的一个预期功能是用户可以搜索人名,并且对于他们输入的每个新字符,执行SQL查询LIKE以查找名称符合匹配条件的所有人.我遇到的问题是参数化LIKE中的匹配,而不是按字面解释问号.也就是说,我相信目前的应用程序正在寻找包含?在其中的人名(没有人).

我的代码看起来像这样:

const char *sql = "SELECT rowid, name, email FROM person WHERE name LIKE '%?%'";
sqlite3_stmt *sqlStatement;
if(sqlite3_prepare_v2(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK) {
    NSLog(@"Problem preparing getFilteredPeopleStubs statement.");
}
if(sqlite3_bind_text(sqlStatement, 1, [searchText UTF8String], -1, SQLITE_TRANSIENT) != SQLITE_OK){
    NSLog(@"Problem binding search text param.");
}
Run Code Online (Sandbox Code Playgroud)

基本上,searchText希望这个名字来自哪里,但目前我认为它只是搜索名字中包含的人?,因为单引号'%?%'.是否有一个解决这个问题的方法仍然允许我使用参数化查询(防止SQL注入)并实现我所追求的目标?

c sqlite objective-c sql-like

5
推荐指数
1
解决办法
2866
查看次数

VB.NET与运算符混淆,模式小于签名

Dim rc As Boolean = "2" Like "*?<*?"
Run Code Online (Sandbox Code Playgroud)

我不明白为什么rc等于True,肯定2不一样*?<*?.

上面的模式需要一个字符串

  • 至少三个字符(两个?和一个<)
  • 其中,<符号是某处内部.

据我所知,<不是一个特殊的角色,这意味着除了<Like运算符之外的其他东西.

使用Visual Studio 2010.

vb.net sql-like

5
推荐指数
1
解决办法
1993
查看次数

sqlzoo上"从世界中选择"教程的第13部分有什么解决方案?

问题的语句是:

把大陆说得对...

  • 大洋洲成为澳大拉西亚
  • 欧亚大陆和土耳其的国家去欧洲/亚洲
  • 以'B'开头的加勒比群岛前往北美洲,其他加勒比岛屿则前往南美洲

显示所有国家的名称,原始大陆和新大陆.

我的解决方案

SELECT name, continent,
   CASE WHEN continent='Oceania' THEN 'Australasia'
        WHEN continent IN ('Europe', 'Asia') THEN 'Europe/Asia'
        WHEN name='Turkey' THEN 'Europe/Asia'
        WHEN continent='Caribbean' AND name LIKE 'B%' THEN 'North America'
        WHEN continent='Caribbean' AND name NOT LIKE 'B%' THEN 'South America'
        ELSE continent END
FROM world
Run Code Online (Sandbox Code Playgroud)

我从sqlzoo得到的结果是"错误答案.有些数据不正确."

sql case case-when sql-like

5
推荐指数
1
解决办法
7495
查看次数

是否有任何数据库索引可以提高'like%keyword%'查询的性能?

我知道对文本字段进行索引可以帮助进行搜索like 'keyword%'.

但是,是否有任何跨数据库索引可以改善全文搜索like '%keyword%'

通常,对于少于1000个字符的文本字段,like %keyword%查询的性能何时变得对Web请求不可接受?说当表达到10K行?

sql database web sql-like

5
推荐指数
1
解决办法
98
查看次数

SQL Server使用LIKE在列名字中搜索""字符

我试图查询数据库表以返回firstname列包含字符的所有记录" ".

例如Lars-Erik "Molle".

我试过这个:

SELECT * FROM [bgtest].[dbo].[cuscon] WHERE firstname LIKE '%Lars-Erik%' 
Run Code Online (Sandbox Code Playgroud)

并且返回了记录,这只是我确保我正在做它然后我更换Lars-Erikwith ""和ofcourse,因为它现在看起来'%""%'它不喜欢它并且什么都不返回.

任何我尝试过的想法包含和喜欢并且无法想出办法.

谢谢

sql t-sql sql-server sql-like

5
推荐指数
1
解决办法
65
查看次数

WHERE子句中的条件顺序是否会影响MySQL的性能?

给出以下查询:

select ....................
from ......................
where 
(
      lower(c01) like ? 
      or lower(c02) like ? 
      or lower(c5x3_.c01) like ? 
      or lower(5x3_.c02) like ?
 )    
 and(
(
      lower(c03) like ? 
      or lower(c04) like ? 
      or lower(c5x3_.c03) like ? 
      or lower(5x3_.c04) like ?
 )    
 /* ...Multiple further LIKEs... */
 and status=1; /* status is a non-nullable value whose values can only be 1 or 2 */
Run Code Online (Sandbox Code Playgroud)

前10或12个限制是LIKE关于各种模式的 - 我知道这可能很慢,所以总是把状态标准放在第一位,即:

status=1;
 and(other LIKEs)
Run Code Online (Sandbox Code Playgroud)

我的问题:首先应用更简单的限制是否会有性能提升(例如,在这种情况下,被比较的int值不能为空值,只有2个可能的值)?如果LIKE首先放置s并稍后显示状态检查,那么性能是否相同?

假设任何列都没有索引来简化问题.

mysql sql performance where-clause sql-like

5
推荐指数
1
解决办法
292
查看次数