英数字のテキストフィールドから先行ゼロを削除するためのmysql関数(ある場合)はありますか?
値が「00345ABC」のフィールドは、「345ABC」を返す必要があります。
先端:
値が純粋に数値の場合、単純なキャストを使用することもできます。
SELECT * FROM my_table WHERE accountid = '00322994' * 1
実際に変換されます
SELECT * FROM my_table WHERE accountid = 322994
多くの場合、これは十分な解決策であり、パフォーマンスがより効果的であると考えています。 (警告-値のタイプがSTRINGからINT/FLOATに変更されます)。
状況によっては、一部のキャスト関数を使用する方法もあります。
テーブルの1つの列全体を更新する場合は、次を使用できます。
USE database_name;
UPDATE `table_name` SET `field` = TRIM(LEADING '0' FROM `field`) WHERE `field` LIKE '0%';
私はあなたがこれで最善であると信じています:
SELECT TRIM(LEADING '0' FROM myField)
TRIMでは、末尾の文字、先頭の文字、またはすべての文字を削除できます。 MySQLでのTRIM関数の使用に関するいくつかの例:
select trim(myfield) from (select ' test' myfield) t;
>> 'test'
select trim('0' from myfield) from (select '000000123000' myfield) t;
>> '123'
select trim(both '0' from myfield) from (select '000000123000' myfield) t;
>> '123'
select trim(leading '0' from myfield) from (select '000000123000' myfield) t;
>> '123000'
select trim(trailing '0' from myfield) from (select '000000123000' myfield) t;
>> '000000123'
選択した量の先行/末尾文字のみを削除する場合は、LEN関数とINSTR関数を組み合わせて、LEFT/RIGHT関数を調べます。
TRIM ( LEADING
間のスペースを削除するだけです
SELECT * FROM my_table WHERE TRIM(LEADING '0' FROM accountid ) = '00322994'
単に完璧:
SELECT TRIM(LEADING '0' FROM myfield) FROM table
SELECT TRIM(LEADING '0' FROM *columnName*) FROM *tableName* ;
これも正しく動作します