在MySQL中使用SELECT DISTINCT从数据中删除非字母字符

时间:2019-01-30 08:02:46

标签: php mysql distinct

我有一个表,其中包含诸如“(伊斯坦布尔)”和“伊斯坦布尔”之类的城市名称数据

我想只显示城市名称,无论是原始名称还是括号。

为此,我正在使用以下代码。

<?php
require_once "config.php";
$sql = $conn->query( "SELECT DISTINCT city FROM countries ORDER BY city" );
if ( $sql->num_rows > 0 ) {
// output data of each row
while ( $row = $sql->fetch_assoc() ) {
    echo '<li> <input type="checkbox" name="cityName" value="' . $row[ "city" ] . '" />' . $row[ "city" ] . '</li>';
}
} else {
echo "0 results";
}
?>

我尝试使用     replace(replace(city,'(',''),')','')

但是我不能将其合并到SELECT DISTINCT中。

我不确定是否有可能。

谢谢!

2 个答案:

答案 0 :(得分:2)

您也可以按顺序添加别名以使用相同的结果

     "SELECT DISTINCT replace(replace(city, '(', ''), ')', '')  as city 
      FROM countries 
      ORDER BY city"

答案 1 :(得分:0)

尝试此查询希望对您有所帮助:-

$sql = $conn->query( "SELECT DISTINCT city FROM countries ORDER BY city WHERE city LIKE '(%)'" );

OR

$sql = $conn->query( "SELECT DISTINCT city FROM countries ORDER BY city WHERE city LIKE '(%' AND LIKE '_)%'" );