こんにちは、次のように構成された2つのテーブルがあります
cdr
src | bill sec | clean_dst
------------------------------
100 | 10 | 18006927753
100 | 22 | 18006927753
100 | 9 | 441138973356
dialing_codes
id | dial_code | tele2id
-----------------------------
1 | 1 | 1422
2 | 1800 | 1433
3 | 441 | 1024
4 | 4413 | 1086
これまでの最善の努力は、dial_code と clean_dst で最も近い一致の tele2id を取得する必要があります。
$query = "SELECT tele2id, dial_code FROM dialing_codes ORDER by dial_code DESC";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
while($row = $result->fetch_assoc()) {
$tele2id = $row['tele2id'];
$dialcode = $row['dial_code'];
$query2 = "SELECT clean_dst FROM cdr WHERE clean_dst LIKE '".$dialcode."%'";
$result2 = $mysqli->query($query2) or die($mysqli->error.__LINE__);
while($row2 = $result2->fetch_assoc()) {
これは機能していると思いましたが、詳しく調べてみると、 clean_dst が繰り返された場合にのみ正しい結果が返されます
例えば
clean_dst dial_code tele2id
18006927753 1800 1433
18006927753 1 1422
私は何を間違っていますか?ありがとう
それが役立つ場合、最も一致する数字の結果が必要ですか?