整數值我在MYSQL表「primaryCamera」,它的價值在於它從字符串屬性提取在MySQL
Camera 8 MP, 3264 x 2448 pixels, Carl Zeiss optics, optical image stabilization, autofocus, dual
我想列出手機大於或等於800萬像素的屬性,什麼是準確的查詢MYSQL,它爲我工作。
請幫幫我。
整數值我在MYSQL表「primaryCamera」,它的價值在於它從字符串屬性提取在MySQL
Camera 8 MP, 3264 x 2448 pixels, Carl Zeiss optics, optical image stabilization, autofocus, dual
我想列出手機大於或等於800萬像素的屬性,什麼是準確的查詢MYSQL,它爲我工作。
請幫幫我。
使用子串,語法是:
SELECT SUBSTR( '串',開始位置,長度)
與您的查詢替換字符串在這裏
請給我查詢。我有屬性PrimaryCamera,我想選擇相機大於8MP的手機。 – razaulmustafa
如果下primaryCamera
列中的數據是在遵循格式,那麼下面給出的查詢可能會完成這項工作。
格式:Camera 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;
說明:
LOCATE('Camera',@str)
返回字符串的開始索引 Camera
。LENGTH('Camera')
返回字符串Camera
的長度,即 6
。(LOCATE('MP',@str)
返回字符串MP
的開始索引。實施例:
鑑於,
primaryCamera = 'Camera 8 MP, 3264 x 2448 pixels, Carl Zeiss optics, optical image stabilization, autofocus, dual'
串Camera
長度Camera
= 1
= 6
開始指數的startIndex字符串MP
= 10
。
您正在尋找的整數值在此範圍內[7,10]
。
SUBSTRING(string FROM START_INDEX_OF_DESIRED_SUBSTRING FOR LENGTH_YOU_WANT_TO_EXTRACT)
的工作原理是這樣的。`
爲了得到你需要這樣做:
START_INDEX_OF_DESIRED_SUBSTRING = StartIndex of Camera + Length of Camera
LENGTH_YOU_WANT_TO_EXTRACT = Start position of string
MP - START_INDEX_OF_DESIRED_SUBSTRING
SUBSTRING(primaryCamera FROM START_INDEX_OF_DESIRED_SUBSTRING FOR LENGTH_YOU_WANT_TO_EXTRACT);
注:可以儲存您的產品的屬性(例如相機)在不同表格下的不同列中。否則,即使執行最簡單的任務,您也很快會接受很多繁瑣的任務。
這不起作用。你能否重新把這個寫成這種格式? 800萬像素。我在開始時沒有「相機」 – razaulmustafa
在'primaryCamera'列下顯示一個真實數據。 – 1000111
SELECT'primary' FROM specifications_new_vastgsm WHERE LOCATE('MP','primary')和'primary'> = 8 .....這項工作對我來說 – razaulmustafa
我在找「LIKE」,但這不太好。任何正則表達式需要。 – razaulmustafa
'相機8 MP'或'相機9 MP'就是你想要取的,而'相機7 MP'不是。這一欄是否都是這種格式的「Camera X MP」? – Blank
本專欄有各種編號,如9MP,3MP,12MP。我需要一個查詢,它使用的數量少於或多於一個。如我有查詢。 SELECT'primaryCamera' FROM table_name WHERE'primaryCamera' REGEXP'[8]'它工作正常。但列中還有一些其他整數。正如剛纔提到的。我能做些什麼 – razaulmustafa