簡體   English   中英

MySQL 查詢在 5.6 中不起作用

[英]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 中,使用unsignedsigned而不是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM