繁体   English   中英

SQL查询以查找列名,其中匹配的文本在列中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM