【问题标题】:Simple but Tricky sqlite search query for简单但棘手的 sqlite 搜索查询
【发布时间】:2013-08-26 18:15:19
【问题描述】:

我有以下 sqlite 查询来查找包含字符 'w' 的单词

SELECT * FROM suppliers WHERE supplier_name like '%w%';

适用于以下词语:awesome、overflow 等

但我的数据库中包含类似的词:αγαπάω、αγαπώ 等

我希望在我触发该查询时也选择这些词,但有些它不起作用我认为这些是重音词,但无论如何我想解决它 所以你能帮我解决这个问题吗

【问题讨论】:

  • 有问题的字母是小写的希腊欧米茄。我不希望在拉丁语“w”上进行搜索。
  • 如果这是一个 sqllite 问题,为什么它被标记为 MySQL、Oracle 和 plpgsql(PostgreSQL 的过程语言)?

标签: mysql sql oracle sqlite plpgsql


【解决方案1】:

字母“ω”是一个希腊字母,名为omega,与字母“w”完全没有联系,只有形状。

【讨论】:

    【解决方案2】:

    请看下面的例子。

    ;WITH CTE AS
    (
         SELECT StringValue = N'Record1 Data: a'  UNION 
         SELECT StringValue = N'Record2 Data: b'  UNION 
         SELECT StringValue = N'Record3 Data: ω'  UNION -- (omega character)
         SELECT StringValue = N'Record4 Data: w'  
     ) 
    
     SELECT *
     FROM CTE
     WHERE StringValue LIKE N'%[wω]%'
    

    将返回记录 3 和 4。

    记得在单引号前加N个字符。

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多