Re:dash の SQL で数値を SELECT したときのカンマを削除したい
株式会社オズビジョンのユッコ (@terra_yucco) です。
オズビジョンのハピタス事業部では、社内メンバがさっくり集計をしたり本番データを見るツールとして re:dash を使っています。こちらで本日、すごく簡単な改善対応を行ったことが喜ばれたので、Qiita に個人メモとして残しておきます。
前提
Re:dash は 2.0.0+b2990 (そろそろ化石...?)
Re:dash の SQL で数値を SELECT したときのカンマを削除したい
デフォルト?では Re:dash は数値型を表示するときに 3 ケタ単位でカンマを入れてきます。これが不要なケースで、カンマを取りたいときの対応方法になります。
Re:dash と併用している管理画面では、対象の数値にカンマを入れていないため、わざわざカンマを手で削除してからデータ突合を行ったりしていたらしいです...大変...。
この方法は SQL によってはパフォーマンス影響が出るケースがあるようなので、軽い SQL で必要な場合だけご利用ください。
Re:dash 側の設定で対応可能かもしれませんが、今のところ見つかってません。
結論
char
にキャストする。
CAST(カラム名 AS char) AS カラム名
※最後の AS カラム名 を付けないと、表示されるカラム名が CAST(カラム名 AS CHAR)
となってしまうので、社内にクエリで共有したりする場合には同名で命名し直したほうが無難です。
DB の構造
mysql> show create table daily_log;
+-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| daily_log | CREATE TABLE `daily_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`action` int(11) NOT NULL,
`sys_ins_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`sys_upd_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> desc daily_log;
+--------------+-----------+------+-----+---------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------+------+-----+---------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | NO | MUL | NULL | |
| action | int(11) | NO | | NULL | |
| sys_ins_date | timestamp | NO | | 0000-00-00 00:00:00 | |
| sys_upd_date | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+--------------+-----------+------+-----+---------------------+-----------------------------+
5 rows in set (0.00 sec)
キャスト無し
SELECT user_id, action, sys_ins_date, sys_upd_date
FROM daily_log
ORDER BY id DESC
LIMIT 1;
キャスト有り
SELECT CAST(user_id AS char) AS user_id, action, sys_ins_date, sys_upd_date
FROM daily_log
ORDER BY id DESC
LIMIT 1;
Author And Source
この問題について(Re:dash の SQL で数値を SELECT したときのカンマを削除したい), 我々は、より多くの情報をここで見つけました https://qiita.com/terra_yucco/items/7f91e001121c19cdb6f7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .