ホームページ >バックエンド開発 >PHPチュートリアル >ハイスコ​​アについての質問です

ハイスコ​​アについての質問です

WBOY
WBOYオリジナル
2016-06-13 13:29:29927ブラウズ

高得点の質問
データベース テーブルに着信フィールドの発信者があります
発​​信者には、通常の携帯電話番号、0 が付く携帯電話番号、010-1234567 などの固定電話番号があります。
方法先頭に0が付いている携帯電話番号は削除できますか?
効率的な実装を求めて

-----ソリューション---------
携帯電話電話番号と固定電話番号には以下の違いがあります

長さ
番号に「-」があるかどうか

携帯電話番号の最初の1桁が0の携帯電話番号をフィルタリングする違い

そうですか?そうなんです…


------解決策---------
select ... where left(caller,1 ) !='0';
------解決策---------
固定電話番号と市外局番を合わせた 11 桁です。携帯電話番号の先頭に 0 がある場合は、11 桁より大きくなります。このルールに従って置き換えます。
------解決策------------------

SQL コード
SELECT * FROM `tbl` WHERE `caller` REGEXP '^01[3458]+';
<br><font color="#e78608">------解決策---------</font><br>最初の部分には携帯電話番号があまりありません、これを使用して判断できます<br><br>
PHP コード

$tel = <<<tel
013428504829
013578504829
057112345678
07551234567
02112345678
0101234567
電話番号;

$tel =explode("n", $tel);

$tel_arr = 配列('13', '15', '18');
foreach ($tel as $key => $val)
{
    if($val[0] == '0' && in_array("$val[1]$val[2]", $tel_arr))
        $tel[$key][0] = '';
}
print_r($tel);
<br><font color="#e78608">------解決策------------------</font><br>
携帯電話番号はすべて 1 で始まります<br>北京市外局番 010 だけを除いてください<br><br>$caller = preg_replace('/^0(1[^0])/', '$1', $caller) ;
<br><font color="#e78608">------解決策---------</font><br>
話し合う
データベース内の携帯電話番号の前の 0 を直接削除したい場合は、次のように実行できます。

SQL コード


update `user`
set `tel`= substring( tel,2,length(tel))
where
length(`tel`)=12


クエリ結果から 0 を削除したいだけの場合、これを行うことができます

SQL コード


select
case when length(tel……

------解決策------------------
直接の mysql 操作
SQL コード
update tbl_name set caller=substr(caller,2) where caller regexp '^01[^0]' <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。