Spring MVC MySQL:如何在MySQL中搜索与Word中相同含义的部分?

nhaq1z21  于 7个月前  发布在  Spring
关注(0)|答案(1)|浏览(74)

我有一个问题,试图做搜索相同的意思的话,在日本,就像我有一个表相同的意思的话:

| Column A | Column B             |
| -------- | --------             |
| きず      | きず、傷、疵、キズ、瑕  |
| 株式会社   | 株式会社、㈱、(株)    |
| aa       | aa,bb,cc,dd          |

列在B栏中的所有单词具有相同的含义。
然后,当我在另一个表中搜索“somethingaa“或“somethingbb”..时,我必须创建一个正则表达式字符串来搜索,如Select NAME from table USER where job REGEXP "somethingaa|somethingbb|somethingcc|somethingdd";
但是如果我用像“IGOaaONbbANDaa”这样的词来搜索,这会使正则表达式变得更复杂和更长。
谁能告诉我更好的方法来执行搜索相同的意思像这样的词?
我在Spring MVC + Mysql上做这个。

8iwquhpp

8iwquhpp1#

看这个

CREATE TABLE datatable (id INT, phrase TEXT);
INSERT INTO datatable VALUES
(1, 'word01 word02 word03'),
(2, 'word01 word03 word05'),
(3, 'word02 word04 word06');
CREATE TABLE criteria (
  canonicalword VARCHAR(255),
  customword VARCHAR(255)
);
INSERT INTO criteria VALUES
('01', '01'),
('01', '07'),
('01', '08'),
('05', '05'),
('05', '06'),
('09', '03'),
('09', '05'),
('09', '07'),
('09', '09');
SET @criteria := '01';
-- rows 1 and 2, immediate
SELECT DISTINCT datatable.*
FROM datatable
JOIN criteria ON datatable.phrase REGEXP CONCAT('word', criteria.customword)
WHERE criteria.canonicalword = @criteria;

| ID|短语|
| --|--|
| 1 |公司简介|
| 2 |公司简介|

SET @criteria := '05';
-- row 2, immediate
-- row 3, via '05' => '06'
SELECT DISTINCT datatable.*
FROM datatable
JOIN criteria ON datatable.phrase REGEXP CONCAT('word', criteria.customword)
WHERE criteria.canonicalword = @criteria;

| ID|短语|
| --|--|
| 2 |公司简介|
| 3 |公司简介|

SET @criteria := '09';
-- row 1, via '09' => '03'
-- row 2, via '09' => '03' and '05', DISTINCT applied
SELECT DISTINCT datatable.*
FROM datatable
JOIN criteria ON datatable.phrase REGEXP CONCAT('word', criteria.customword)
WHERE criteria.canonicalword = @criteria;
-- the same, w/o DISTINCT, row2 is returned twice
SELECT datatable.*
FROM datatable
JOIN criteria ON datatable.phrase REGEXP CONCAT('word', criteria.customword)
WHERE criteria.canonicalword = @criteria;

| ID|短语|
| --|--|
| 1 |公司简介|
| 2 |公司简介|
| ID|短语|
| --|--|
| 1 |公司简介|
| 2 |公司简介|
| 2 |公司简介|
fiddle

相关问题