经过一番研究,我还没有找到我需要的东西,我想我会在这里问。我目前正在尝试为应用程序开发高级搜索模式,但我仍坚持我的任务。也许你可以帮助我。想象一下我有下表:
ID | Name | Surname
1 | John | Mim
2 | Johnny | Crazy
3 | Mike | Something
4 | Milk | Milk
5 | Peter | IDontknow
6 | Mitch | SomeName
然后在我的前端,有一个输入字段。该字段的输入将以这种方式通过查询:
SELECT name, surname FROM people WHERE name LIKE 'input%' OR surname LIKE 'input%'
现在假设我的输入是“Mi”,因此我将在“姓名”列中匹配 3 列,在姓氏中匹配 2 列。这就是我正在寻找的。p>
输出以下内容的计数:
Column | Count
Name | 3
Surname | 2
有没有一种方法可以仅通过一个查询来实现这一目标?
到目前为止我尝试过的:
我实际上在我的数据库中的本地主机上创建了上面的表,并尝试了不同的查询。尝试过 SELECT count(name), count(surname)
,但这两个计数都会输出 3。所以我什至不确定这是否可以仅在一个查询中实现。
最佳答案
使用联合所有
SELECT 'name' as col, count(name) as cnt FROM people WHERE name LIKE 'input%'
union all
SELECT 'surname', count(surname) FROM people WHERE surname LIKE 'input%'
关于mysql - 按列计算 SQL 出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56947737/