ขอแนวทางในการเขียน sql หาตัวเลขหน่อยครับ ว่ามีตัวเลขจำนวนดังกล่าวไหม
เขียนแบบนี้ ถ้าเลขมันซ้ำกันมันก็จะขึ้นมาผิดครับ
เช่นค่าที่รับมาเป็น 121 ใช้แบบด้านล่าง ในฐานข้อมูลเป็น 123 มันก็มาแสดงด้วยครับมีแนวทางอื่นไหมครับ
Code (SQL)
select * from numbertb
where
(number like '%".substr($_POST[number2],0,1)."%' and
number like '%".substr($_POST[number2],1,1)."%'
and
number like '%".substr($_POST[number2],2,1)."%'
ประวัติการแก้ไข 2014-04-25 20:31:32
Date :
2014-04-25 20:12:28
By :
narubet
ลองใช้ OR แทน AND ดูหรือยังครับ
Date :
2014-04-25 21:20:37
By :
deawx
ถ้าค่าใน db เรียงจากมากไปน้อยตลอดก็
Code (PHP)
$arr = str_split($_POST[number2]);
rsort($arr);
SELECT * FROM numbertb WHERE number REGEXP '.*$arr[0].*$arr[1].*$arr[2].*';
Date :
2014-04-25 22:19:04
By :
natt_han
ปัญหาคือมันไม่เรียงครับและจำนวนไม่แน่นอนครับเช่น
54321 หรือ 1234 ตัวเลขเหล่านี้สลับตำแหน่งกันได้ครับ แล้วค่าที่เราใช้ค้นหาคือ 1 2 3
ถ้าในตัวเลขดังกล่าวมีเลข 1 2 3 อยู่ไม่ว่าตำแหน่งให้มันแสดงครับ
Date :
2014-04-26 06:58:05
By :
narubet
ยากวุ้ย
แบบลูกทุ่ง
Code (SQL)
SELECT * FROM numbertb WHERE number REGEXP '.*$arr[0].*$arr[1].*$arr[2].*'
or number REGEXP '.*$arr[0].*$arr[2].*$arr[1].*'
or number REGEXP '.*$arr[1].*$arr[0].*$arr[2].*'
or number REGEXP '.*$arr[1].*$arr[2].*$arr[0].*'
or number REGEXP '.*$arr[2].*$arr[1].*$arr[0].*'
or number REGEXP '.*$arr[2].*$arr[0].*$arr[1].*'
ว่าแต่ข้อมูลอะไรเหรอครับ ทำไมเก็บแบบนี้ ค้นหาแบบนี้
Date :
2014-04-26 09:02:54
By :
natt_han
แต่ถ้าตัวเลขเป็น 34251 เพราะตำแหน่งตัวเลขมัน random ได้ แล้วค่าที่เราใช้ค้นหาคือ 1 2 3
ผมว่าใช้ที่คุณแนะนำ มันน่าจะไม่ได้ครับ
Date :
2014-04-26 12:22:46
By :
narubet
Code (MySQL)
Select * From numbertb
Where 3 = If(Position('1' in number) > 0, 1, 0) + If(Position('2' in number) > 0, 1, 0) + If(Position('3' in number) > 0, 1, 0)
Code (MSSQL)
Select * From numbertb where Contains(number, 'Matching Pattern')
Good Luck.
Date :
2014-04-26 13:45:50
By :
love9713
ขอบคุณครับ เห็นทางสว่างแล้วครับ
Date :
2014-04-27 12:03:38
By :
narubet
ตกลงทำยังไงเหรอครับ อยากรู้
Date :
2014-04-28 13:22:09
By :
natt_han
เชื่อผมไหมว่า แทงหวยใต้ดินโอกาสถูกตรงตรงสามตัวบนมีโอกาสได้เงิน มันมีมากว่า
แทงบอล แชมป์พรีเมียลึกของอังกฤษ 2014 ประจำปีนี้ (ลิเวอร์พูน, เซลซี, แมนซิตี้)
คำนวนด้วยความน่าจะเป็น สูตร p = s + l(1/1000) และ p = s x (20 ทีม) x ( 20 * 1/20) ^ 1/loss/win/equal
สรุปง่ายง่ายว่า แทงหวยใต้ดินมีโอกาส ได้เงิน มีมากกว่าแทงบอลว่าทีมไหนชนะและได้เงิน (ต่างกันประมาณ 1,000,000 เท่า)
Date :
2014-04-28 18:53:19
By :
love9713
สรุปว่า การพนันถ้าคุณได้เป็นส่วนน้อย(คุณ(ทุกทุกคน) ดีใจ)
นั่นคือเขาให้คุณ (เขาอาศัยความรู้สึกของคุณ "กูโชคดีว่ะ") แค่นั้นเองครับ
อาเมน ขอให้พระเจ้าอวยพร
Good Luck.
Date :
2014-04-28 19:15:15
By :
love9713
Load balance : Server 03