На этой странице
есть отличный пример использования REGEXP для сопоставления с образцом. проблема с REGEXP не будет соответствовать следующим строкам:
- "Мистер Джон"
- "Доктор Джон"
или даже:
- "Мистер Джон Доу"
со строкой "Джон Доу"
Я хотел бы знать, как получить положительные совпадения для любого из приведенных примеров?
Вот пример кода:
Drop table Names;
CREATE TABLE Names (
first_name VARCHAR(20),
last_name VARCHAR(20)
);
INSERT INTO Names VALUES ('John','Doe');
INSERT INTO Names VALUES ('Sue','Yin');
INSERT INTO Names VALUES ('Diego James', 'Franco');
select * from Names;
/*To find names containing a string */
/*I want this to march John Doe*/
SELECT * FROM Names WHERE first_name REGEXP 'Mr John';
/*This has John misspelled, I want it to match John Doe */
SELECT * FROM Names WHERE first_name REGEXP 'Hohn' AND last_name REGEXP 'Doe';
/*And this would match Diego James Franco*/
SELECT * FROM Names WHERE first_name REGEXP 'Dr Diego' AND last_name REGEXP 'Franco';
-Спасибо
UPDATE:
Спасибо за ответы, вопрос не в том, как использовать регулярное выражение для сопоставления, которое я хочу, а в том, как я могу это сделать независимо от REGEXP. Я использую REGEXP в качестве примера сопоставления с образцом. Я ценю разъяснения по регулярным выражениям.