كيفية تقليم الأصفار الرائدة من نص أبجدي رقمي في وظيفة mysql

ما هي الدالات MySQL الموجودة (إن وجدت) لخفض الأصفار البادئة من حقل نص أبجدي رقمي؟

سيحتاج الحقل ذو القيمة "00345ABC" إلى إرجاع "345ABC".

0

7 إجابة

سيسمح لك TRIM بإزالة الحروف الزائدة أو الرائدة أو كافة الأحرف. بعض الأمثلة على استخدام وظيفة TRIM في MySQL:

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'

إذا كنت ترغب في إزالة كمية محددة فقط من الأحرف الرائدة/الزائدة ، فابحث في دالات LEFT/RIGHT ، مع توليفة من وظائف LEN و INSTR

0
وأضاف

إذا كنت ترغب في تحديث عمود كامل واحد من الجدول ، فيمكنك استخدامه

USE database_name;
UPDATE `table_name` SET `field` = TRIM(LEADING '0' FROM `field`) WHERE `field` LIKE '0%';
0
وأضاف

أنت تبحث عن وظيفة trim() .

حسنًا ، إليك مثالك

SELECT TRIM(LEADING '0' FROM myfield) FROM table
0
وأضاف
هل هذا لأصفار متعددة كذلك؟
وأضاف المؤلف Peter, مصدر
++ على وجه التحديد ، TRIM (يقود '0' من '000345ANB095')
وأضاف المؤلف Tom Ritter, مصدر
سيترك القيمة فارغة إذا كانت "0000" بالفعل.
وأضاف المؤلف arslion, مصدر

أعتقد أنك ستكون الأفضل مع هذا:

SELECT TRIM(LEADING '0' FROM myField)
0
وأضاف

فقط قم بإزالة المسافة بين TRIM (القيادة) استعمال

SELECT * FROM my_table WHERE TRIM(LEADING '0' FROM accountid ) = '00322994' 
0
وأضاف
هل سيعمل هذا مع أصفار متعددة؟
وأضاف المؤلف Peter, مصدر

تلميح:

إذا كانت قيمك عدديًا تمامًا ، فيمكنك أيضًا استخدام إرسال بسيط ، على سبيل المثال ،

SELECT * FROM my_table WHERE accountid = '00322994' * 1

سوف تتحول في الواقع إلى

SELECT * FROM my_table WHERE accountid = 322994

وهو الحل الكافي في كثير من الحالات ، وأعتقد أيضا أن الأداء أكثر فعالية. (تحذير - يتغير نوع القيمة من STRING إلى INT/FLOAT).

في بعض المواقف ، قد يكون استخدام بعض وظيفة الصب أيضًا طريقة يجب اتباعها:

http://dev.mysql.com/doc/refman/5.0/en/cast- functions.html

0
وأضاف
أعتقد أن + 0 هي طريقة أكثر شيوعًا للإلقاء في int من * 1
وأضاف المؤلف mpen, مصدر
هذا مفيد جدا إذا كانت القيمة مثل '000000'.
وأضاف المؤلف Septian Primadewa, مصدر

حدد TRIM (يؤدي إلى '0' من اسم العمود ) من tableName ؛ هذا أيضا يعمل بشكل صحيح

0
وأضاف