[英]SQL Query for finding a column name where matching text is in column
这是我的第一个stakoverflow问题,尽管我潜伏了一段时间。 我正在用PHP / SQLite编写一个webapp,并且尝试查找列名以及以下SQL查询:
SELECT lexemeid FROM lexeme, sense WHERE lexeme.lexemeid =
sense.senselexemeid AND (lexeme.lexeme LIKE '%apani%' OR lexeme.variant
LIKE '%apani%' OR lexeme.affixedform LIKE '%apani%' OR sense.example
LIKE '%apani%');
基本上,我将为几个不同的领域提供全文本查找。 上面的查询有效,但我想获取我的通配符与每个结果匹配的列的名称。 基本上我想要类似上面的查询,而SELECT看起来更像:
SELECT lexemeid, COLUMN NAME FROM...
我也欢迎任何使我的SQL查询外观/性能更好的想法(也许使用LIKE和IN ??)。 我基本上是想加入lexeme.lexemeid和sense.senselexemeid并在文本字符串(在本例中为“ apani”)上进行通配符查找。
谢谢!
假设您只在其中一列中有一个匹配项,则可以使用CASE语句。
SELECT lexemeid,
CASE WHEN lexeme.lexeme LIKE '%apani%' THEN 'lexeme'
WHEN lexeme.variant LIKE '%apani%' THEN 'variant'
...
WHEN sense.example LIKE '%apani%' THEN 'example'
END AS ColumnName
FROM ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.