在MySQL查询中删除整数的最后一位数的最佳方法是什么?
我正在开展家谱项目。假设father_id
将是
10001
然后孩子们就会
100011
100012
100013
等。
我得到了father_ID
,我需要能够得到他所有的孩子
我试过了:
SELECT * FROM table WHERE Father_ID LIKE '$F_ID%'
但它不起作用。
我发现this post将整数转换为数组,我认为这可能有所帮助,但我不知道在那之后我会做什么。
提前致谢!
答案 0 :(得分:6)
我不确定这是否是构建家谱的好方法。像你一样使用“父亲ID”
我能看到的唯一好处是查询一个祖先的所有后代非常容易,但仅此一点不值得IMO。
我会使用普通的自动增量ID,并为每条记录提供parent
列(或father
和mother
,当然,或者为同性别父母提供帐户,{ {1}}和parent1
)。该列将包含父记录的ID。
然后你可以简单地进行像
这样的查询parent2
查询祖先会变得更加困难,但其他一切变得更加容易。
答案 1 :(得分:2)
根据数据库的实际架构,您基本上有两个选择:
将整数与字符串匹配。
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;
答案 2 :(得分:1)
你的SQL错了,正确的语法是
SELECT * FROM table WHERE Father_ID LIKE '$F_ID%'
答案 3 :(得分:0)
我和我的语言混在一起所以如果这是无效的,请原谅。请尝试以下方法:
floor(number / 10);