我需要带有一些前缀和后缀的mySql结果.这是我的代码:
SELECT bk_id, bk_rtype, villas_db.v_name AS villa_name
FROM booking_db
INNER JOIN villas_db ON booking_db.bk_vid = villas_db.v_id
WHERE '2012-11-02'
BETWEEN bk_date1
AND bk_date2
ORDER BY bk_id DESC
LIMIT 0 , 30
Run Code Online (Sandbox Code Playgroud)
结果是:
bk_id bk_rtype villa_name
30 2 T2
29 3 V1
Run Code Online (Sandbox Code Playgroud)
所以我需要结果如下:
bk_id bk_rtype villa_name booking_no
30 2 T2 B2-00030
29 3 V1 B3-00029
Run Code Online (Sandbox Code Playgroud)
B是由" - "和sprintf("%05d",bk_id)分隔的预订前缀;
请建议.
您可能想要使用CONCAT和LPAD功能如下:
SELECT bk_id, bk_rtype, villas_db.v_name AS villa_name,
CONCAT('B',bk_rtype,'-', LPAD(bk_id, 5, '0')) AS booking_no
FROM booking_db
INNER JOIN villas_db ON booking_db.bk_vid = villas_db.v_id
WHERE '2012-11-02'
BETWEEN bk_date1
AND bk_date2
ORDER BY bk_id DESC
LIMIT 0 , 30 ;
Run Code Online (Sandbox Code Playgroud)
我找到了我的解决方案:
SELECT bk_id, bk_rtype, villas_db.v_name AS villa_name, concat( 'B', bk_rtype, '-', lpad( bk_id, 5, 0 ) ) AS booking_no
FROM booking_db
INNER JOIN villas_db ON booking_db.bk_vid = villas_db.v_id
WHERE '2012-11-02'
BETWEEN bk_date1
AND bk_date2
ORDER BY bk_id DESC
LIMIT 0 , 30
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9118 次 |
| 最近记录: |