Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mysql中从字符串属性中提取整数值_Mysql - Fatal编程技术网

在Mysql中从字符串属性中提取整数值

在Mysql中从字符串属性中提取整数值,mysql,Mysql,我在MYSQL表“primaryCamera”中有一个属性,其值为 Camera 8 MP, 3264 x 2448 pixels, Carl Zeiss optics, optical image stabilization, autofocus, dual 我想列出大于或等于8MP的手机,MYSQL中适合我的确切查询是什么 请帮助我。使用子字符串,语法为: 选择SUBSTR('字符串',开始,长度) 将此处的字符串替换为您的查询如果primaryCamera列下的数据采用以下格式,则下面给

我在MYSQL表“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对不起,我是指问题本身。:(作者没有理解你所说的,也不能把这个问题说得更清楚。