标签: sql-like

使用MySQL LIKE的正确语法?

我有一堆LIKE状态查询.我想optizimze /解释查询,运行正常.但是,如果我复制这个:

 SELECT a.*, p.ek, p.vk, p.waehrung, p.onlinepreis
     FROM arts a USE INDEX (i_aktiv, i_iln, i_marke )
         LEFT JOIN pls p ON 
           p.iln = a.iln  
         LEFT JOIN fbs zu 
           ON a.farbe = zu.farbe 
           WHERE a.aktiv = "ja"
           AND (
       a.artikelbezeichnung LIKE ? 
    OR a.artikelbezeichnung_lang LIKE ? 
            OR (   a.farbe LIKE '%decke%'
                 OR zu.systemfarbe LIKE '%decke%'
                 OR zu.systemfarbe_en LIKE '%decke%' 
                 )
                                ) 
            )
         ...
Run Code Online (Sandbox Code Playgroud)

作为我想要添加的参数,'%decke%'但MySQL不断抛出错误,如果我使用的话%%.

知道我做错了什么吗?

我得到的错误是:

你的SQL语法有错误....在OR附近检查...%'%'decke%'(a.farbe LIKE'%decke%'...

mysql select sql-like

0
推荐指数
1
解决办法
559
查看次数

mySQL LIKE运算符不相等

我如何编写mySQL查询,我正在寻找使用LIKE运算符的东西,而不是像LIKE那样?

select * from ets_fi where name like '%barcode&' <> '%barcode%';
Run Code Online (Sandbox Code Playgroud)

mysql sql-like

0
推荐指数
1
解决办法
4611
查看次数

使用PDO准备好的语句从搜索字段中使用多个关键字进行LIKE查询

站点用户使用搜索表单来查询产品数据库。输入的关键字在数据库中搜索产品的标题。

    public function startSearch($keywords){
        $keywords = preg_split('/[\s]+/', $keywords);
        $totalKeywords = count($keywords);

        foreach($keywords as $key => $keyword){
            $search .= '%'.$keyword.'%';
            if($key != ($totalKeywords)-1){
                $search .= ' AND itemTitle LIKE ';
            }
        }
$sql=$this->db->prepare("SELECT * FROM prodsTable WHERE itemTitle LIKE ?");
$sql->bindParam(1, $search);        
$sql->execute ();
$sql->fetchALL(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)

如果用户输入单个关键字,则搜索有效,但是如果使用多个关键字,则查询不会执行。

如果:$ keywords ='apple ipod'; $ search ='%apple%AND itemTitle Like%ipod%';

因此,准备好的语句应如下所示:

“从prodsTable中选择*,其中itemTitle喜欢%apple%和itemTitle喜欢%ipod%”

当两个产品的标题中同时包含“ apple”和“ ipod”时,没有结果返回。

我究竟做错了什么?

php pdo sql-like

0
推荐指数
1
解决办法
4094
查看次数

从SQL数据库中选择包含特定列中某个文本字符串的所有行

我一直在看其他帖子,比如这个这个但是没有什么适用于我的具体情况.

我有这样一张桌子:

|    Name    |    Reference    |    Etc...    |
|------------|-----------------|--------------|
|  John Doe  |                 |  Blah blah   |
|  Jane Doe  |   John Doe      |  Blah blah   |
| Mike Small |   Jane Doe      |  Blah blah   |
|  Steve Ex  |   John Doe      |  Blah blah   |
| Mary White |   Mike Small    |  Blah blah   |
Run Code Online (Sandbox Code Playgroud)

我希望能够找到哪些名称也是其他名称的引用,并将它们转换为链接,以便用户可以单击它们并获取这是引用的名称列表.

例如,如果用户点击John Doe,他/她将获得如下表格:

|    Name    |    Reference    |    Etc...    |
|------------|-----------------|--------------|
|  Jane Doe  |   John Doe      | …
Run Code Online (Sandbox Code Playgroud)

php sql select contains sql-like

0
推荐指数
1
解决办法
7477
查看次数

MYSQL使用LIKE函数查询日期

我在mysql查询的where语句中有以下语句:

WHERE scrap_date LIKE '%-01-%'
Run Code Online (Sandbox Code Playgroud)

我想抓住1月份scrap_date的所有数据.我收到的错误是:

"第1行的'scrap_date'列的日期时间值不正确:'% - 01-%'"

scrap_dateis 的数据类型DATETIME.不确定使用什么语法来获取1月份日期的数据,有什么建议吗?

php mysql sql datetime sql-like

0
推荐指数
1
解决办法
1400
查看次数

与SQL Server中的运算符和尾随空格类似

这一个匹配 column_name like 'CharEndsHere%'

这个没有 column_name like 'CharEndsHere'

我知道像操作符一样会考虑尾随空格,所以我只是复制了精确的列值(带有尾随空格)并粘贴它.

有点像column_name like 'CharEndsHere '它不匹配 - 为什么?.

我没有使用'='运算符,因为列类型是ntext

我在这里缺少什么或者不应该like以这种方式使用运算符吗?

编辑:column_name like 'CharEndsHere__'(__表示空格)'CharEndsHere '是该单元格中的确切值,like以这种方式使用有效还是无效?

编辑:

这是我试过的代码,

SELECT * 
FROM [DBName].[dbo].[TableName] 
WHERE [DBName].[dbo].[TableName].Address1 LIKE rtrim('4379 Susquehanna Trail S  ') 
Run Code Online (Sandbox Code Playgroud)

我也试过没有使用rtrim,但结果相同

编辑:根据Blindy的回答,

If a comparison in a query is to return all rows with the string LIKE 'abc' (abc
without a space), all rows that start …
Run Code Online (Sandbox Code Playgroud)

sql sql-server ntext sql-server-2008 sql-like

0
推荐指数
1
解决办法
4619
查看次数

Mysql Regexp字符在任何位置和第一个位置

我使用'VW'搜索我需要一个mysql regexp模式,它只能找到VOLKSWAGEN而不是VOLKSWAGEN和VOLVO.

我先试试:

SELECT title FROM brand WHERE title REGEXP '^[VW]' 
Run Code Online (Sandbox Code Playgroud)

所以我V在第一个位置获得所有记录.

我不知道怎么的条件结合VFIRST性格和W任何位置.

我尝试:

SELECT title FROM brand WHERE title REGEXP '^[VW]' AND title REGEXP '[VW]' 
Run Code Online (Sandbox Code Playgroud)

并且还尝试使用Having子句

SELECT title FROM brand WHERE title REGEXP '[VW]' HAVING title REGEXP '^[VW]' 
Run Code Online (Sandbox Code Playgroud)

我知道我们有单独的替代方案我们会有一个&&REGEXP 的条件吗?

提前致谢

mysql sql-like

0
推荐指数
1
解决办法
49
查看次数

SQL查询:LIKE x%

我的SQL查询有问题,我会请求帮助.

我有这样的行:

2% 

20%

a 20% b

a 2 b

a 2% b

etc.
Run Code Online (Sandbox Code Playgroud)

我想只看到字符串中包含'2%'的那些.

当我想使用以下过滤它们时:

WHERE ColA LIKE '%2%%' 
Run Code Online (Sandbox Code Playgroud)

它显示了以上所有行,而不仅仅是:

2%

a 2% b
Run Code Online (Sandbox Code Playgroud)

你能帮帮我吗?

sql sql-server sql-like

0
推荐指数
1
解决办法
448
查看次数

Oracle在'%test%query中执行全表扫描

我有一张表,里面有数百万个条目.这三个领域也有一些指数city,streetname.

但是当我执行以下查询时,返回任何结果需要10秒+.

SELECT bd.*
FROM BASEDATA bd 
WHERE 1=1 
AND lower(city) LIKE '%city%' 
AND lower(street) LIKE '%street%' 
AND lower(name) LIKE '%schmidt%' 
Run Code Online (Sandbox Code Playgroud)

查看解释计划时,它显示使用全表扫描而不是使用索引执行查询.

sql oracle sql-like

0
推荐指数
1
解决办法
486
查看次数

SQL就像文本中的两个通配符一样

有没有办法用两个单词(或更多)创建一个where语句,但它们与给出的单词的顺序不一样?

select 
    i.ITEM_NUMBER as Item,
    min(i.ITEM_DESCRIPTION) as Description,
    i.ORGANIZATION_CODE as Org,
    max(m.MANUFACTURER_NAME) as Manufacturer,
    max(m.MANUFACTURERS_PARTNUMBER) as Partnumber
from mis.XXEAM_INVENTORY_REPORT_WITH_LOCATORS_CONSIGNED_MATERIAL_AND_CATEGORIES_TBL i
left outer join 
    mis.XXEAM_MANUFACTURING_PART_NUMBERS_TBL m on i.ITEM_NUMBER = m.ITEM_NUMBER
where 
    i.ITEM_DESCRIPTION like '%ALLEN BRADLEY%PLC%' 
group by i.ORGANIZATION_CODE, i.ITEM_NUMBER
Run Code Online (Sandbox Code Playgroud)

我想在上面的描述文本中搜索'%ALLEN BRADLEY%PLC%'或'%PLC%ALLEN BRADLEY%'.我想避免使用OR语句,因为数据集很大并且查询可能需要很长时间.

通配符可以超过两个,我只以这两个为例.在我看来,我会更喜欢为第一个单词获取数据集,然后从该数据集中获取第二个单词.也许唯一的方法是选择进入临时表.

sql sql-server wildcard sql-like

0
推荐指数
1
解决办法
132
查看次数

标签 统计

sql-like ×10

sql ×6

mysql ×4

php ×3

sql-server ×3

select ×2

contains ×1

datetime ×1

ntext ×1

oracle ×1

pdo ×1

sql-server-2008 ×1

wildcard ×1