MySQL:在WHERE子句中定义变量而不选择它

时间:2016-12-05 07:27:29

标签: mysql

我有包含这些列的表journal

| id | journalName | issn |

我需要:根据journalName&的串联结果过滤表格。 issn(使用LIKE语法) - 并且仅显示 journalName和issn (未选择连接结果)。连接结果需要根据几个LIKE标准进行过滤,因此将它们放在变量中是合理的。

这是WHERE方法(重复调用concat):

SELECT journalName, issn
FROM `journal`
WHERE 
CONCAT_WS(' ',journalName,issn) LIKE '%375%' AND
CONCAT_WS(' ',journalName,issn) LIKE '%res%'

我当前的方法(使用变量但有两个SELECT语句):

SELECT journalName, issn FROM
(
    SELECT journalName, issn, CONCAT_WS(' ',journalName,issn) AS searchable
    FROM `journal`
    HAVING 
    searchable LIKE '%375%' AND
    searchable LIKE '%res%'
    ORDER BY searchable DESC
) t

还有其他方法只使用一个SELECT语句同时将concat结果同时存储在变量中吗?

n.b。:添加列不是一个选项。我看过thisthis

0 个答案:

没有答案