【问题标题】:sqlite with multiple like具有多个like的sqlite
【发布时间】:2013-09-30 00:17:45
【问题描述】:

我正在尝试使用 php 和 sqlite 设置查询,并且查询有多个 LIKE 条件...

$findMe  = 'blah';
$nLast   = -1; 
$nRecord = 5;
$db      = new PDO('sqlite:data.db');
$qry = "SELECT *
        FROM mytable    
        WHERE (id > $nLast)     
        AND ((col1 LIKE '%$findMe%')    
        OR (col2 LIKE '%$findMe%')  
        OR (col3 LIKE '%$findMe%')  
        OR (col4 LIKE '%$findMe%'))     
        LIMIT $nRecord  
        ORDER BY id DESC";
$result = $db->query($qry);

...但这不会返回任何结果。如果我只使用 LIKE 条件之一运行查询,它将起作用。

【问题讨论】:

  • ...FTS 是一个选项,但它似乎不是很便携,因为它默认未启用。

标签: php sqlite select sql-like


【解决方案1】:

为什么不尝试使用glob 而不是like

select *
from "mytable"
where ('col1' || 'col2' || 'col3' || 'col4')
glob '%$findMe%'

【讨论】:

  • 他们有关于 glob 关键字的任何文档吗?我问是因为我在搜索互联网时找不到任何有关它的信息。
  • 我避免使用 GLOB,因为它区分大小写......据说我尝试了您的示例,但它也不适用于我。我现在想知道我是否正确使用了括号,可以用括号隔离 AND 和 OR 吗?
  • @jayveesea 据我所知,AND 和 OR 可以用括号隔开。
猜你喜欢
  • 2013-08-27
  • 1970-01-01
  • 2012-11-02
  • 2023-01-18
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多