如何使用 Sql 查询从数据行中获取精确匹配

How to get exact match from data row using Sql query

您好,我的数据行 (ID) 为

  1. 12?15?6?11?51?

  2. 1?15?6?11?51? &

我想搜索等于 1 (id) 的数字。为此当我使用

  1. %1% 这将 return 匹配结果作为两行

  2. %1?% 这将 return 匹配结果作为两行

  3. %?1?% 这将 return 匹配结果为 null

  4. %?1% 这将 return 匹配结果作为两行

对于 ID 1,结果应该只有第二行。 请为此提供适当的查询。 谢谢

SELECT * FROM TABLE WHERE ID LIKE '1?_%' ; 如果您包含以 1 开头的内容,这将起作用?

您可以使用

CREATE TABLE T(
  ID VARCHAR(45)
);

INSERT INTO T VALUES
('12?15?6?11?51?'),
('1?15?6?11?51? &');

SELECT *
FROM T
WHERE ID LIKE '[1][^0-9]%';

Returns:

+-----------------+
|       ID        |
+-----------------+
| 1?15?6?11?51? & |
+-----------------+

Demo

SELECT * FROM TableName WHERE ID LIKE '1?%' OR ID LIKE '%?1?%'