[英]MySQL Query is not working in 5.6
SELECT
p.ID, p.post_name as _slug,
p.post_title as _title,
p.post_modified as _updated,
m1.meta_value as _symbol,
CONVERT(SUBSTRING_INDEX(m2.meta_value,'-',-1), INTEGER) as _rank
FROM wp_posts AS p
LEFT JOIN wp_postmeta m1 ON p.id = m1.post_id AND m1.meta_key = '_cc_symbol'
LEFT JOIN wp_postmeta m2 ON p.id = m2.post_id AND m2.meta_key = '_cc_rank'
where
p.post_type='cryptocurrency' ORDER by p.ID asc LIMIT 1 OFFSET 0
此查詢不適用於 MySQL 軟件版本:5.6.35-81.0
#1064 - 你的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本相對應的手冊,以獲取在第 1 行的“整數”附近使用的正確語法作為 _rank, FROM wp_posts AS p LEFT JOIN wp_postmeta m1 ON p.id = m1.post'
提前致謝
在 MySQL 中,使用unsigned
或signed
而不是int
。 我更喜歡cast()
到convert()
:
CAST(SUBSTRING_INDEX(m2.meta_value, '-', -1) as unsigned) as _rank
(在舊版本的 MySQL 中, convert()
只在字符集之間轉換,而不是在類型之間轉換。)
或者,更簡單地說,使用靜默轉換:
(SUBSTRING_INDEX(m2.meta_value, '-', -1) + 0) as _rank
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.