Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从MySQL返回不带连字符的字符串_Php_Sql_Hyphen - Fatal编程技术网

Php 从MySQL返回不带连字符的字符串

Php 从MySQL返回不带连字符的字符串,php,sql,hyphen,Php,Sql,Hyphen,我正试图从表中检索客户的电话号码。问题是,我想在进行选择时删除电话号码中出现的所有连字符。我应该使用替换吗 function statsUserRing($phone) //Phone is an array containing phone numbers { foreach($phone as $p) { $p_mod = str_replace('-', '', $p); //Remove the hyphens from the phone numbers

我正试图从表中检索客户的电话号码。问题是,我想在进行选择时删除电话号码中出现的所有连字符。我应该使用替换吗

function statsUserRing($phone) //Phone is an array containing phone numbers
{
    foreach($phone as $p)
    {
        $p_mod = str_replace('-', '', $p); //Remove the hyphens from the phone numbers in the array

        $get_stats = $link->get_object("SELECT REPLACE($p,'-', '') FROM ringupp WHERE telnr='$p_mod'");

    }
}
我想根据数组中的电话号码获取ringupp表中的记录,但ringupp表中的电话号码包含带连字符的电话号码,但我想在执行选择时删除连字符

我想要得到的列在表中称为telnr


希望你能理解我。:)

我假设您希望查找数字匹配的记录,而忽略下划线。为此,您需要使用以下方法:

SELECT <field(s)> FROM ringupp WHERE REPLACE(telnr,'-', '') ='$p_mod'
从ringupp中选择,其中REPLACE(telnr,“-”,“)=“$p_mod”

请注意,这将非常缓慢,因为系统将需要扫描整个表以将“清理的telnr”与所需的匹配,因此无法(有效地)利用其索引。

是的,这正是我想要的。谢谢你的回答。那么REPLACE中的第一个参数始终是列名?这样如何:从WHERE…表中选择replace(myfield,'foo','bar')作为myfield_rep。。。。?或者为什么不这样:“选择REPLACE(telnr,“-”,“)作为来自ringupp的telnr,其中telnr=“$p_mod””?发送到数据库的查询有不同的部分
SELECT
表示要获取信息,
指示要返回的列。如果您键入类似于
Replace(telnr,“-”,“)
的内容,那么它将在从连字符中删除telnr字段后返回该字段。来自的
部分告诉它从何处获取数据(例如,表的名称)。
其中
部分指示需要返回哪些记录。换句话说,它充当过滤器。我建议看一看,以便更熟悉SQL的语法及其工作原理。