获取mysql中逗号分隔行中不同值的计数

2024-05-18

一个表 Jobs 有 2 列 JobId,城市,当我们保存工作时,工作位置可能是多个城市,如下所示

-----------------------------
JobId               City
-------------------------------
1                   New York
2                   New York , Ohio , Virginia
3                   New York , Virginia

我如何计算特定城市的jobid,就像我想计算纽约市的jobid一样 我想要这样的结果

纽约 3 俄亥俄州 1 弗吉尼亚2


你的数据库设计得很糟糕,你将会遇到很多麻烦。 使用当前结构,您可以使用以下命令获取计数find_in_set函数,但你应该避免。

你的桌子是这样的

create table test
(jobid int ,city varchar(100));

insert into test values 
(1,'New York'),
(2,'New York, Ohio,Virginia'),
(3,'New York,Virginia');

现在要获取计数,您可以使用以下命令

select 
count(*) as tot from test
where 
find_in_set('Virginia',city) > 0;

正如我提到的,这是一个糟糕的数据库设计,理想的情况是

  • 首先是包含工作详细信息的工作表
  • 包含所有位置的位置表
  • 最后是链接工作和位置的表格

所以它看起来像

create table jobs (jobid int, name varchar(100));

insert into jobs values
(1,'PHP'),(2,'Mysql'),(3,'Oracle');

create table locations (id int, name varchar(100));
insert into locations values (1,'New York'),(2,'Ohio'),(3,'Virginia');

create table job_locations (id int, jobid int, location_id int);

insert into job_locations values
(1,1,1),(2,2,1),(3,2,2),(4,2,3),(5,3,1),(6,3,3);

现在获取计数和更多操作将相当容易

select
count(j.jobid) as  tot
from jobs j 
join job_locations jl on jl.jobid = j.jobid
join locations l on l.id = jl.location_id
where
l.name = 'Virginia'

要计算每个城市的所有工作并使用上述模式,这将非常简单

select
l.name,
count(j.jobid) as  tot
from jobs j 
join job_locations jl on jl.jobid = j.jobid
join locations l on l.id = jl.location_id
group by l.name

DEMO http://www.sqlfiddle.com/#!2/10d51/2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取mysql中逗号分隔行中不同值的计数 的相关文章

随机推荐

  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 仅针对 Rake 任务运行初始化程序

    我希望在执行 Rake 任务时运行某个初始化程序 但在运行 Rails 服务器时不运行 区分 Rake 调用和服务器调用的最佳方法是什么 Rake 允许您指定任务的依赖关系 最好的建议操作是将特定于 rake 的初始化放入其自己的任务中 而
  • 如何垂直对齐div内的图像

    如何在包含的内容中对齐图像div Example 在我的示例中 我需要将 img in the div with class frame div class frame style height 25px img src http jsfi
  • 如何正确编写AttributeSet的XML?

    我想创建一个面板适用于 Android 平台的其他小部件 http code google com p android misc widgets 在运行时 XmlPullParser parser getResources getXml R
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • Facebook Graph API event-id/comments?since=2014-02-01&until=2014-02-10 ,日期过滤器无效

    我试图通过定位此 URL 来发表对特定事件的评论 https graph facebook com 1466384840257158 comments 我正在传递 user access token 我目前对此事件有两条评论 日 2014
  • MySQL 左连接 WHERE table2.field = "X"

    我有以下表格 pages Field Type Null Key Default Extra page id int 11 NO PRI NULL auto increment type varchar 20 NO NULL
  • Swift 中的 UIAlert 自动消失?

    我有以下代码 Creates Alerts on screen for user func notifyUser title String message String gt Void let alert UIAlertController
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • RemoteIO 音频单元播放回调中的 AudioBufferList 内容

    我想 拦截 音频数据传送到 iOS 设备扬声器的过程 我相信这可以使用 RemoteIO 音频单元和回调来完成 在下面的playbackCallback中 ioData实际上包含任何音频数据吗 static OSStatus playbac
  • 显示从 json 到 AMP 页面的原始 HTML

    目前 我正在尝试将 AMP 实施到现有的产品页面 但在显示一些数据方面有点困难 我尝试显示的字段来自 json 并包含原始 HTML 如下所示 description h1 section title h1 p section descri
  • 如何调用 Scala 抽象类型的构造函数?

    我试图弄清楚如何调用 Scala 抽象类型的构造函数 class Journey val length Int class PlaneJourney length Int extends Journey length class BoatJ
  • 如何在多个文档中使用 Google Apps 脚本

    我有一个谷歌应用程序脚本 我想在多个文档中使用它 我也可能想稍后在这些文档中更改它 因此我必须使用same所有这些文档中的脚本 而不是该脚本的副本 我知道以下问题可能属于重复问题 但我不愿意接受它的答案 Google Apps 脚本 如何在
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 在 TypeScript 中,可以在没有“new”关键字的情况下使用类吗?

    TypeScript 是包含类型的 ES6 Javascript 超集 可以使用以下方式声明一个类class关键字并使用实例化new关键字与 Java 中的关键字类似 我想知道 TypeScript 中是否有任何用例可以在不使用new关键词
  • 自定义错误页面未显示

    由于某种原因 当我收到 ASP NET 运行时错误时 它不会加载我的自定义错误页面
  • 如何在 Windows 下使用 cmake 生成使用 Intel 编译器的 Visual Studio 项目

    我正在用 C 开发一个跨平台 Linux Windows 应用程序 我已经厌倦了维护可用的 Makefile 和 Visual Studio 解决方案 项目 所以我想过渡到 cmake 我在两个平台上都使用英特尔编译器 我在 Windows
  • 苹果推送通知在生产中不起作用

    我们完全陷入困境 请帮忙 我和我的团队制作了一个 iPhone 应用程序 这是我们第一次在 iOS 上尝试 一切都很好 直到我们提交应用程序并在应用程序商店上可用为止 推送通知服务无法正常工作 我在网上搜索并尝试根据人们的建议仔细检查我们的
  • 动态加载的输入框不执行任何操作

    所以我有一些 html 会根据用户所在的 QuestionNumber 动态加载到 panel div 中 这不是全部代码 而是我认为的所有相关代码 无论如何
  • 获取mysql中逗号分隔行中不同值的计数

    一个表 Jobs 有 2 列 JobId 城市 当我们保存工作时 工作位置可能是多个城市 如下所示 JobId City 1 New York 2 New York Ohio Virginia 3 New York Virginia 我如何