バージョン選択

フォーラム

メニュー

オンライン状況

69 人のユーザが現在オンラインです。 (58 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 69
もっと...

サイト内検索

質問 > その他 > SQLのCAST関数について

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
katai
投稿日時: 2021/9/16 11:17
対応状況: −−−
半人前
登録日: 2020/6/29
居住地:
投稿: 18
SQLのCAST関数について
[EC-CUBE] 4.0.3
[レンタルサーバ] Xサーバー
[PHP] 7.3.25
[データベース] MySQL 5.7.29

phpMyAdminにて
SELECT CAST(SUBSTRING(tracking_number, 3) AS SIGNED) as tn FROM `dtb_shipping` WHERE `tracking_number` LIKE "1-%" ORDER BY tn ASC


上記のSQL文を実装したいのですが、
Repository.phpに
$qb->addSelect('cast(SUBSTRING(tracking_number, 3) AS SIGNED) as HIDDEN tracking_number');
$qb->addOrderBy('tracking_number');


と記述すると
[Syntax Error] line 0, col 23: Error: Expected known function, got 'cast'


とエラーが表示されCASTを使用できません。
CAST関数を利用する方法があればご教授頂きたいです。
よろしくお願いいたします。
468
投稿日時: 2021/9/16 13:30
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: SQLのCAST関数について
CAST関数はDoctrineのデフォルトでは使えないのではないかと思います。
(DoctrineはSQLで使える関数がすべてそのまま利用できるという仕組みではないようです)

CAST関数ではありませんがリンク先のページで独自のDQL関数を追加する方法が紹介されております。(symfony2なので情報が古いですが...)
https://qiita.com/tetsukamp/items/11340b1846ca08a417d5

ただ、symfony上での解説の為、
ECCUBEではどこをどのように変更すべきかという事までは
私は理解できておりません。

カラムを加工するよりも個別のカラム(ハイフン前後の数値を格納するカラムをそれぞれテーブルに追加する)を用意して
OrderByで処理するほうが簡単なのではかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,306名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.