2011-12-24 66 views
1

刪除MySQL查詢中整數的最後一位數字的最佳方法是什麼?如何刪除整數的最後一位數字? (PHP)

我正在做一個家譜項目。假設father_id

10001 

那麼孩子會

100011 
100012 
100013 

等。

我得到father_ID,我需要能夠得到所有他的孩子

我想:

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

但沒有奏效。

我發現this post將一個整數轉換爲一個數組,我認爲這可以幫助某種方式,但我不知道我會做什麼之後。

在此先感謝!

+1

所以你不想刪除一個整數的最後一位。相反,您希望將任何Integer與固定前綴和最後一位變量進行匹配。 – joschi 2011-12-24 11:00:40

+2

如果父親(或母親)有超過10個孩子,會發生什麼情況? – 2011-12-24 11:12:25

回答

1

你的SQL是錯誤的,正確的語法是

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

這是否也適用於整數? – 2011-12-24 11:03:11

+0

我正在研究它,但在最壞的情況下,他將不得不將其投入 – RageZ 2011-12-24 11:03:57

+0

確認在MySQL 5.x上工作 – RageZ 2011-12-24 11:05:11

6

我不知道這是否是要建立一個家譜在所有的好辦法。使用「父ID」像你這樣的

  • 允許跟蹤一個只提供母公司 - 不是真的適合任何嚴重的祖先研究
  • 進行更改困難 - 你必須重新計算整個ID,如果修正被做
  • 有問題@stefgosselin提及 - 有超過10個孩子的家庭呢?

唯一的好處是我可以看到,查詢一個祖先的所有後代是非常容易的,但單靠這一點是不值得的海事組織。

我會用正常的自動遞增的ID,並給每個記錄parent列(或fathermother,當然還是要佔同性別的父母,parent1parent2)。該列將包含父記錄的ID。

SELECT * FROM table WHERE father = `530` 

查詢祖先然後,你可以簡單地做查詢會變得有點艱難,但一切變得更加容易。

+0

爲了讓我的主要問題得到解答,我已經進行了簡化操作 我有一個個人ID,mother_ID,Father_ID,Family_ID ...等。全部爲一行 – user1107703 2011-12-24 11:07:48

+0

@聽起來非常複雜的用戶。使用父列的方法可能會更好。 – 2011-12-24 11:10:33

+0

我需要所有這些因各種原因(如創建視覺效果) – user1107703 2011-12-24 11:14:48

0

我混淆了我的語言,所以請原諒,如果這是無效的。請嘗試以下操作:

floor(number/10); 
2

根據數據庫的實際模式您有兩種基本選擇:

  1. 匹配的整數爲字符串。

    SELECT * FROM table WHERE father_id LIKE '${f_id}%'; 
    
  2. 匹配Integer作爲數字值。

    SELECT * FROM table WHERE father_id >= $f_id * 10 AND father_id < ($f_id + 1) * 10; 
    
相關問題