Можно ли использовать подстановочные знаки в значениях базы данных, а не во входной переменной?

#sql

#sql

Вопрос:

У меня есть упрощенный пример с использованием номерных знаков, хранящихся в таблице с одним столбцом. Предположим, у меня есть таблица ниже, где некоторые значения хранятся с подстановочным знаком: * для обозначения нескольких символов или ? для обозначения одного символа. В этой ситуации можно было бы выполнить какой-то обратный запрос?

Имя
507KL?
2RCS20
8HD7AC
HA04*
HA0401

Например, предположим, я получаю номерной знак HA0422. Я хотел бы написать запрос, который соответствует 4-й строке в моей таблице. Возможно ли это только с SQL?

Комментарии:

1. Пометьте свой вопрос базой данных, которую вы используете.

Ответ №1:

Вы можете поместить like параметры в любом порядке, который вы хотите — шаблон может исходить из столбца. Однако * это не подстановочный знак. % есть. И ? предположительно означает _ . So:

 where 'HA0422' like replace(replace(name, '*', '%'), '?', '_')
  

Комментарии:

1. То же самое для ‘_’ вместо ‘?’