Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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 如何删除整数的最后一位?(菲律宾)_Php_Mysql_Integer - Fatal编程技术网

Php 如何删除整数的最后一位?(菲律宾)

Php 如何删除整数的最后一位?(菲律宾),php,mysql,integer,Php,Mysql,Integer,在MySQL查询中删除整数最后一位的最佳方法是什么 我在做一个家谱项目。假设父id是 10001 然后孩子们就会 100011 100012 100013 ect 我得到了父亲的ID,我需要能够得到他的所有孩子 我试过: SELECT * FROM table WHERE Father_ID LIKE '$F_ID%' 但它不起作用 我发现把一个整数转换成一个数组,我想这可能会有帮助,但我不知道在那之后我会做什么 提前谢谢 您的SQL错误,正确的语法是 SELECT * FROM tabl

在MySQL查询中删除整数最后一位的最佳方法是什么

我在做一个家谱项目。假设父id是

10001
然后孩子们就会

100011
100012
100013
ect

我得到了父亲的ID,我需要能够得到他的所有孩子

我试过:

SELECT * FROM table WHERE Father_ID LIKE '$F_ID%'
但它不起作用

我发现把一个整数转换成一个数组,我想这可能会有帮助,但我不知道在那之后我会做什么


提前谢谢

您的SQL错误,正确的语法是

SELECT * FROM table WHERE Father_ID LIKE '$F_ID%' 

您的SQL错误,正确的语法是

SELECT * FROM table WHERE Father_ID LIKE '$F_ID%' 

我不确定这是否是一个建立家谱的好方法。像你一样使用“父亲身份证”

  • 只允许跟踪单亲-不适合任何严肃的祖先研究
  • 使更改变得困难-如果进行了更正,则必须重新计算整个ID
  • stefgosselin提到了这个问题吗?有10个以上孩子的家庭呢
我能看到的唯一好处是,查询一个祖先的所有后代非常容易,但这一点在我看来并不值得

我会使用正常的自动递增ID,给每个记录一个
parent
列(或者
parent
mother
,当然,也可以考虑同性父母,
parent1
parent2
)。该列将包含父记录的ID

然后您可以简单地执行如下查询

SELECT * FROM table WHERE father = `530`

查询祖先会变得有点困难,但其他一切都变得容易多了。

我不确定这是否是构建家谱的好方法。像你一样使用“父亲身份证”

  • 只允许跟踪单亲-不适合任何严肃的祖先研究
  • 使更改变得困难-如果进行了更正,则必须重新计算整个ID
  • stefgosselin提到了这个问题吗?有10个以上孩子的家庭呢
我能看到的唯一好处是,查询一个祖先的所有后代非常容易,但这一点在我看来并不值得

我会使用正常的自动递增ID,给每个记录一个
parent
列(或者
parent
mother
,当然,也可以考虑同性父母,
parent1
parent2
)。该列将包含父记录的ID

然后您可以简单地执行如下查询

SELECT * FROM table WHERE father = `530`

查询祖先会变得有点困难,但其他一切都会变得容易得多。

我对我的语言感到困惑,所以如果这是无效的,请原谅。请尝试以下操作:

floor(number / 10);

我的语言不通,请原谅,如果这是无效的。请尝试以下操作:

floor(number / 10);

根据数据库的实际模式,基本上有两个选项:

  • 将整数作为字符串进行匹配

    SELECT * FROM table WHERE father_id LIKE '${f_id}%';
    
  • 将整数匹配为数值

    SELECT * FROM table WHERE father_id >= $f_id * 10 AND father_id < ($f_id + 1) * 10;
    
    从表中选择*,其中父亲id>=$f\U id*10和父亲id<($f\U id+1)*10;
    

  • 根据数据库的实际模式,基本上有两个选项:

  • 将整数作为字符串进行匹配

    SELECT * FROM table WHERE father_id LIKE '${f_id}%';
    
  • 将整数匹配为数值

    SELECT * FROM table WHERE father_id >= $f_id * 10 AND father_id < ($f_id + 1) * 10;
    
    从表中选择*,其中父亲id>=$f\U id*10和父亲id<($f\U id+1)*10;
    


  • 所以您不想删除整数的最后一位。相反,您希望匹配具有固定前缀和可变最后一位数字的任何整数。如果父亲(或母亲)有10个以上的子女,会发生什么情况?因此您不希望删除整数的最后一位数字。相反,您希望匹配具有固定前缀和可变最后一位数字的任何整数。如果父亲(或母亲)有10个以上的孩子,会发生什么情况?我正在研究它,但在最坏的情况下,他必须将其转换为
    ,就像
    匹配字符串一样。所以不,它对数字不起作用。但是,由于您实际上没有使用变量的类型,而且您使用的是
    $f_id
    作为字符串,它会工作的。@joschi:刚刚在MySQL 5.x上试用过,它可以工作,我认为MySQL很好,可以自动执行强制转换字符串。您确定使用了
    所以PHP替换了
    $f_id
    ?您必须区分它可以处理整数,也可以将数字转换为字符串“在这种情况下,是后者,它有一些含义。关于模式匹配的文档与
    相似
    :我正在研究它,但在最坏的情况下,他必须将其转换为
    相似
    匹配字符串。所以不,它对数字不起作用。但是,由于您实际上没有使用变量的类型,而且您使用的是
    $f_id
    作为字符串,它会工作的。@joschi:刚刚在MySQL 5.x上试用过,它可以工作,我认为MySQL很好,可以自动执行强制转换字符串。您确定使用了
    所以PHP替换了
    $f_id
    ?您必须区分它可以处理整数,也可以将数字转换为字符串“在这种情况下,是后者,它有一些含义。关于模式匹配的文档与
    类似
    :为了回答我的主要问题,我已经非常简化了我有个人ID、母亲ID、父亲ID、家庭ID。。。发射型计算机断层扫描仪。一劳永逸row@user这听起来非常复杂。有家长专栏的方法可能会更好。出于各种原因,我需要让所有这些(比如制作视觉效果)再加上这样一个事实,即母亲通常是可识别的,而父亲并不总是如此。。。那么为什么要沿着父系分支而不是母系分支追踪身份证呢。。。但我建议使用Pekka建议的直接自动递增id,并在您的记录中链接到父亲和母亲_id@user你也可以用列模型创建视觉效果,这只是需要更多的工作来实现。为了回答我的主要问题,我已经进行了简化,我有一个个人ID,母亲ID,父亲ID,家庭身份证。。。发射型计算机断层扫描仪。一劳永逸row@user