在Mysql中从字符串属性中提取整数值
我在MYSQL表“primaryCamera”中有一个属性,其值为在Mysql中从字符串属性中提取整数值,mysql,Mysql,我在MYSQL表“primaryCamera”中有一个属性,其值为 Camera 8 MP, 3264 x 2448 pixels, Carl Zeiss optics, optical image stabilization, autofocus, dual 我想列出大于或等于8MP的手机,MYSQL中适合我的确切查询是什么 请帮助我。使用子字符串,语法为: 选择SUBSTR('字符串',开始,长度) 将此处的字符串替换为您的查询如果primaryCamera列下的数据采用以下格式,则下面给
Camera 8 MP, 3264 x 2448 pixels, Carl Zeiss optics, optical image stabilization, autofocus, dual
我想列出大于或等于8MP的手机,MYSQL中适合我的确切查询是什么
请帮助我。使用子字符串,语法为: 选择SUBSTR('字符串',开始,长度)
将此处的字符串替换为您的查询如果
primaryCamera
列下的数据采用以下格式,则下面给出的查询可能会执行此操作
格式:摄像头X MP…..
查询:
SELECT
primaryCamera
FROM table_name
WHERE
CAST(SUBSTRING(@str FROM LOCATE('Camera',@str)+LENGTH('Camera') FOR (LOCATE('MP',@str)-(LOCATE('Camera',@str)+LENGTH('Camera')))) AS UNSIGNED) > 8;
说明:
SELECT
primaryCamera
FROM table_name
WHERE
CAST(SUBSTRING(@str FROM LOCATE('Camera',@str)+LENGTH('Camera') FOR (LOCATE('MP',@str)-(LOCATE('Camera',@str)+LENGTH('Camera')))) AS UNSIGNED) > 8;
返回字符串的开始索引LOCATE('Camera',@str)
摄像机
返回字符串LENGTH('Camera')
的长度,该字符串为Camera
6
返回字符串的开始索引(LOCATE('MP',@str)
MP
SELECT
primaryCamera
FROM table_name
WHERE
CAST(SUBSTRING(@str FROM LOCATE('Camera',@str)+LENGTH('Camera') FOR (LOCATE('MP',@str)-(LOCATE('Camera',@str)+LENGTH('Camera')))) AS UNSIGNED) > 8;
鉴于
primaryCamera='Camera8MP,3264x2448像素,卡尔蔡司光学系统,光学图像稳定,自动对焦,双摄像头'
字符串摄像机的startIndex
=1
摄像机的长度
=6
字符串的开始索引MP
=10
您要查找的整数值在此范围内[7,10]
SUBSTRING(从所需子字符串的开始索引到要提取的子字符串的长度)
的工作原理如下`
为了实现这一目标,您需要执行以下操作:
所需子字符串的开始索引=摄像机的开始索引+摄像机的长度
LENGTH\u YOU\u WANT\u EXTRACT=字符串的开始位置
MP-所需子字符串的开始索引
SUBSTRING(primaryCamera FROM START_INDEX_OF_DESIRED_SUBSTRING FOR LENGTH_DESIRED_TO EXTRACT);
注意:您应该将产品属性(如相机)存储在不同的表格下的不同列中。否则,即使是最简单的任务,您也很快会遇到许多繁琐的任务要处理。我在寻找“喜欢”,但这不好。需要任何正则表达式。
Camera 8MP
或Camera 9MP
是您要获取的,而Camera 7MP
不是。此列是否都像此格式Camera X MP
?此列有各种数字,例如9MP、3MP、12MP。我需要一个查询,该查询用于小于或大于一个数字。例如我有查询。从表\u name中选择primaryCamera
,其中primaryCamera
REGEXP'[8]“它工作正常。但列中还有一些其他整数。如上所述。我能做什么?您没有得到它。您所有的数据都在primaryCamera
列下,格式为Camera X MP吗?
?@razaulmustafaYes。我有数据,正如您所说的。请现在给我查询。请给我查询。”。我有属性PrimaryCamera,我想选择摄像头大于8MP的手机。这不起作用。请您将其重新写入此格式。8MP。我在开始时没有“摄像头”。在PrimaryCamera
列下显示一个真实数据。从规格中选择primary
('MP',primary
)和primary
=8…..这是为我做的工作哪一个@Reno?(:p)我要的是一个真实的数据/PO发布的问题?@1000111对不起,我是指问题本身。:(作者没有理解你所说的,也不能把这个问题说得更清楚。