【问题标题】:SQL query to search for a field by multiple values in same fieldSQL查询通过同一字段中的多个值搜索字段
【发布时间】:2018-03-27 12:28:10
【问题描述】:

例如:

ID - Description

01 - Mix Black
02 - Mix Red
03 - Mix Blue

如何编写查询以在查询中显示"Mi Bl" 之类的字段?

【问题讨论】:

  • 您使用的是什么关系型数据库?请标记它。
  • 您需要编辑您的问题,以便您询问您实际需要的内容,或者您​​将继续获得您提出的问题的答案。 stackoverflow.com/help/how-to-ask

标签: sql


【解决方案1】:

您可以将LIKE% 一起使用:

SELECT * FROM your_table WHERE Description LIKE 'Mi%Bl%';

此查询将为您提供以下 2 个结果:

01 - Mix Black
03 - Mix Blue

% 是通配符:

百分号表示零个、一个或多个字符

More information on LIKE.

【讨论】:

  • 是的,谢谢,但我想在 vb 项目中使用它进行文本编辑,所以像这样它不起作用
  • @AbbasHodroj 你可以在 Visual Basic 中尝试这样的事情:Dim sql As String = "SELECT * FROM your_table WHERE Description LIKE 'Mi%Bl%'"。虽然不是我的域。只是给你一些我遇到的你可能会觉得有用的东西。来源:stackoverflow.com/questions/13583209/…
  • @AbbasHodroj:您的评论毫无意义。该查询解决了您在问题中陈述的问题。我不明白为什么“文本编辑项目”会有所作为。
【解决方案2】:

使用带有通配符的 LIKE 子句。 https://docs.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql

SELECT *
FROM YourTable
WHERE Description LIKE 'Mi%Bl%';

这是 SQL Server 语法,但任何 RDBMS 都可以使用类似的通配符。

【讨论】:

  • 是的,谢谢,但我想在 vb 项目中使用它进行文本编辑,所以像这样它不起作用
【解决方案3】:
SELECT *
    FROM `table`
where Description like '%Mi% %Bl%'

【讨论】:

  • 是的,谢谢,但我想在 vb 项目中使用它进行文本编辑,所以像这样它不起作用
【解决方案4】:
SELECT * 
FROM Tablename 
WHERE `Description` LIKE 'Mi%Bl%';

'%' 字符用于匹配任意数量(0、1 或更多)的字符。 所以这将与您的以下记录相匹配,结果集将是 -

ID - Description
-------------------
01 - Mix Black
03 - Mix Blue

【讨论】:

  • 那是无效的标准 SQL
  • 是的,谢谢,但我想在 vb 项目中使用它进行文本编辑,所以像这样它不起作用
  • @a_horse_with_no_name 你能解释一下这个 SQL 中有什么无效的地方吗?
  • 反引号在 SQL 标识符中无效,字符串文字需要用单引号括起来。双引号用于标识符 "Mi%Bl%" 是标准 SQL 中的列名。
  • @a_horse_with_no_name 谢谢!改变了。
猜你喜欢
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2011-12-26
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多