ホームページ >バックエンド開発 >PHPチュートリアル >ハイスコアについての質問です
高得点の質問
データベース テーブルに着信フィールドの発信者があります
発信者には、通常の携帯電話番号、0 が付く携帯電話番号、010-1234567 などの固定電話番号があります。
方法先頭に0が付いている携帯電話番号は削除できますか?
効率的な実装を求めて
-----ソリューション---------
携帯電話電話番号と固定電話番号には以下の違いがあります
長さ
番号に「-」があるかどうか
携帯電話番号の最初の1桁が0の携帯電話番号をフィルタリングする違い
そうですか?そうなんです…
------解決策---------
select ... where left(caller,1 ) !='0';
------解決策---------
固定電話番号と市外局番を合わせた 11 桁です。携帯電話番号の先頭に 0 がある場合は、11 桁より大きくなります。このルールに従って置き換えます。
------解決策------------------
SELECT * FROM `tbl` WHERE `caller` REGEXP '^01[3458]+'; <br><font color="#e78608">------解決策---------</font><br>最初の部分には携帯電話番号があまりありません、これを使用して判断できます<br><br>
$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>
update tbl_name set caller=substr(caller,2) where caller regexp '^01[^0]' <div class="clear"></div>