Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL/Maria构建视图将缩写与完整描述匹配_Mysql_Sql_Stored Procedures_View_Mariadb - Fatal编程技术网

MySQL/Maria构建视图将缩写与完整描述匹配

MySQL/Maria构建视图将缩写与完整描述匹配,mysql,sql,stored-procedures,view,mariadb,Mysql,Sql,Stored Procedures,View,Mariadb,首先,我不控制我正在管理的数据。它来自一个客户的电子表格&我正在尽我所能地利用它。事实上,我把事情弄得一团糟&尽我所能把它正常化 我使用的是MariaDB 5.5.30,InnoDB表格格式 我的一个项目要求在搜索结果中提供一个项目描述,该描述由“标准”缩写(至少在公司内部)组成。用户可能不知道所有的缩写词定义,所以他们最初的想法是使用一个单独的搜索框来查找缩写词。相反,我希望让用户在线悬停/单击缩写,并查看定义的工具提示 我知道这将涉及某种视图,它将描述中的缩写与缩写表匹配以获得定义。我也意识

首先,我不控制我正在管理的数据。它来自一个客户的电子表格&我正在尽我所能地利用它。事实上,我把事情弄得一团糟&尽我所能把它正常化

我使用的是MariaDB 5.5.30,InnoDB表格格式

我的一个项目要求在搜索结果中提供一个项目描述,该描述由“标准”缩写(至少在公司内部)组成。用户可能不知道所有的缩写词定义,所以他们最初的想法是使用一个单独的搜索框来查找缩写词。相反,我希望让用户在线悬停/单击缩写,并查看定义的工具提示

我知道这将涉及某种视图,它将描述中的缩写与缩写表匹配以获得定义。我也意识到这可能会造成的开销

我正在寻找一种相对有效的方法(视图、例程等)的建议。即使这意味着构建一个静态表,将项绑定到提供定义的记录上

|          ITEMS                       |
|--------------------------------------|
| Item ID | Desc                       |
|--------------------------------------|
|       1 | CHOC CONG DR DRP 18" 25ct. |
|--------------------------------------|

|       ABBREVIATIONS              |
|----------------------------------|
| Abbr ID | Abbr | Definition      |
|----------------------------------|
|       1 | CHOC | Chocolate       |
|       2 | CONG | Congestion      |
|       3 | DR   | Delayed-Release |
|       4 | DRP  | Drops           |
|----------------------------------|
缩写词几乎可以以任何组合出现在项目描述中。只有与缩写匹配的描述片段才会有工具提示。不幸的是,一些缩写是多个单词,而另一些缩写少于4个字符

如果这样做会对性能造成痛苦,我愿意回到他们最初的想法。但是为了一个统一的接口,我认为这会很好


任何(建设性的)建议都将不胜感激。

它被搁置了几个月,但我又重新开始玩这个。。。

带有单词边界标记的
REGEXP
用法确保单字母缩写与描述中的部分单词不匹配

从那里,我可以在描述的子字符串周围放置一个与缩写匹配的可操作元素,这样他们就可以看到定义

SELECT ITEMS.ID, ITEMS.Desc, ABBRS.Abbr, ABBRS.Definition
FROM ITEMS
LEFT JOIN ABBREVIATIONS ABBRS ON ITEMS.Desc 
  LIKE REGEXP CONCAT('.*[[:<:]]', ABBRS.Abbr, '[[:>:]].*');
| RESULTS                                                  |
|----------------------------------------------------------|
| ID | Desc                       | Abbr | Definition      |
|----------------------------------------------------------|
|  1 | CHOC CONG DR DRP 18" 25ct. | CHOC | Chocolate       |
|  1 | CHOC CONG DR DRP 18" 25ct. | CONG | Chocolate       |
|  1 | CHOC CONG DR DRP 18" 25ct. | DR   | Delayed-Release |
|  1 | CHOC CONG DR DRP 18" 25ct. | DRP  | Drops           |
|----------------------------------------------------------|