ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingสอบถามเกี่ยวกับ SQL Command ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: สอบถามเกี่ยวกับ SQL Command ครับ  (อ่าน 2489 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
nuningplus
สมุนแก๊งเสียว
*

พลังน้ำใจ: 137
ออฟไลน์ ออฟไลน์

กระทู้: 624



ดูรายละเอียด
« เมื่อ: 21 พฤษภาคม 2012, 02:45:59 »

$sql = "SELECT * FROM product WHERE id = '_____' ORDER BY id";

ในช่องว่างสีแดง ผมต้องการให้มันเลือกตำแหน่งที่ id เป็นเฉพาะตัวเลขเท่านั้น ผมต้องใช้คำสั่งอะไรครับ

บันทึกการเข้า
Positron
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 289
ออฟไลน์ ออฟไลน์

กระทู้: 1,060



ดูรายละเอียด
« ตอบ #1 เมื่อ: 21 พฤษภาคม 2012, 05:34:59 »

โดยปรกติแล้ว id เราก็เป็นตัวเลขอยู่แล้วไม่ใช่หรือครับ
ผมก็ไม่รู้ว่าคำสั่งเช็ค type ใน db พวก sql แต่ละตัวเค้าใช้อะไรกัน เพราะผมเลิกใช้sqlไปนานแล้ว - -'
บันทึกการเข้า
nuningplus
สมุนแก๊งเสียว
*

พลังน้ำใจ: 137
ออฟไลน์ ออฟไลน์

กระทู้: 624



ดูรายละเอียด
« ตอบ #2 เมื่อ: 21 พฤษภาคม 2012, 06:59:34 »

โดยปรกติแล้ว id เราก็เป็นตัวเลขอยู่แล้วไม่ใช่หรือครับ
ผมก็ไม่รู้ว่าคำสั่งเช็ค type ใน db พวก sql แต่ละตัวเค้าใช้อะไรกัน เพราะผมเลิกใช้sqlไปนานแล้ว - -'

ถ้าสมมติว่าจะเอาเป็นแค่ตัวเลขจริงๆอะครับ
บันทึกการเข้า
sbaydee
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 337
ออฟไลน์ ออฟไลน์

กระทู้: 1,622



ดูรายละเอียด
« ตอบ #3 เมื่อ: 21 พฤษภาคม 2012, 07:13:11 »

โค๊ด:
$sql = "SELECT * FROM product  WHERE id REGEXP '^[0-9]+$' ORDER BY id";
ลองดูครับ
บันทึกการเข้า
nuningplus
สมุนแก๊งเสียว
*

พลังน้ำใจ: 137
ออฟไลน์ ออฟไลน์

กระทู้: 624



ดูรายละเอียด
« ตอบ #4 เมื่อ: 21 พฤษภาคม 2012, 14:51:29 »

โค๊ด:
$sql = "SELECT * FROM product  WHERE id REGEXP '^[0-9]+$' ORDER BY id";
ลองดูครับ

ขอบคุณมากเลยครับ ทำได้แล้วครับ ถามเพิ่มเติมหน่อยนะครับ '^[0-9]+$' ผมลองลบเหลือ '[0-9]' ก็ยังแสดงผลได้เหมือนเดิม ก็เลยอยากทราบว่า ^ กับ  +$ มีประโยชน์ยังไงครับ

แล้วถ้าผมต้องการให้เลือกค่าที่ id = 2 เท่านั้น ผมสามารถเขียนโค้ดเป็น id REGEXP '[2]' แบบนี้ได้เลยใช่ปะครับ
« แก้ไขครั้งสุดท้าย: 21 พฤษภาคม 2012, 14:54:52 โดย nuningplus » บันทึกการเข้า
jommann
สมุนแก๊งเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 677



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 21 พฤษภาคม 2012, 15:48:57 »

แต่ละ สัญลักษณ์ จะมีความหมายในตัวของมันน่ะครับ เช่น

เครื่องหมาย   ^

ใช้เมื่อต้องการตรวจสอบว่า เป็น คำ ตัวอักษร หรือข้อความที่ขึ้นต้นบรรทัด  หรือไม่
ซึ่งหมายถึง คำ ตัวอักษร หรือข้อความนั้นๆ ต้องอยู่ข้างหน้าสุด ของบรรทัดเสมอ
( เป็นการขึ้นต้นบรรทัดใหม่จาก \n ไม่ใช่ <br> และไม่มีช่องว่างหน้าคำนั้นๆ)

ตัวอย่างเช่น มีข้อความในตัวแปรอยู่ 3 บรรทัด ได้แก่
Blackpool
Blackburn
Liverpool
ต้องการตรวจสอบว่า คำว่า Black ที่ขึ้นต้นบรรทัด ทุกคำ จะสามารถกำหนดได้เป็น
/^Black/m

m คือ Pattern Modifiers ใช้สำหรับ ให้ทำการเช็ครูปแบบ pattern ในทุก บรรทัด ที่ขึ้นต้นบรรทัด
ใหม่จาก \n อ่านเพิ่มเติมที่
hxxp://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
------------------//----------------------------------

เครื่องหมาย   +

+
เป็นตัวอักขระ สำหรับกำหนดจำนวนตัวอักษรใช้ในกรณี
หมายถึง จะมีกี่ตัวก็ได้ไม่จำกัด แต่ต้องมีอย่างน้อย 1 ตัว

ตัวอย่างเช่น
รูปแบบ pattern /g+gle/
- หมายถึง มีตัว g อย่างน้อย 1 ตัวหรือมากกว่า แล้วต้องต่อด้วย gle เลย
ดังนั้น
google จึงไม่เข้าเงื่อนไข แม้มีตัว g ก่อน อย่างน้อย 1 ตัว แต่ต่อ oo ก่อนที่จะต่อด้วย gle
gggle จึงเข้าเงื่อนไข เพราะมีตัว g ก่อน อย่างน้อย 1 ตัว แล้วมีการต่อด้วย gle
oogle จึงไม่เข้าเงื่อนไข เพราะไม่มีตัว g ก่อน อย่างน้อย 1 ตัว ก่อนที่จะต่อด้วย gle
-----------//-----------------------------------

เครื่องหมาย   $

$
ใช้เมื่อต้องการตรวจสอบว่า ลงท้ายประโยคหรือบรรทัดด้วย คำ ตัวอักษร หรือข้อความที่กำหนด หรือไม่
ซึ่งหมายถึง คำ ตัวอักษร หรือข้อความนั้นๆ ต้องอยู่ท้ายประโยค ก่อนขึ้นบรรทัดใหม่เสมอ
( เป็นการขึ้นต้นบรรทัดใหม่จาก \n ไม่ใช่ <br> และไม่มีช่องว่างหลังคำนั้นๆ)

ตัวอย่างเช่น มีข้อความในตัวแปรอยู่ 3 บรรทัด ได้แก่
Blackpool
Blackburn
Liverpool
ต้องการตรวจสอบว่า คำว่า pool ที่ลงท้ายประโยคหรือบรรทัด จะสามารถกำหนดได้เป็น
/pool$/m

m คือ Pattern Modifiers ใช้สำหรับ ให้ทำการเช็ครูปแบบ pattern ในทุก บรรทัด ที่ขึ้นต้นบรรทัด
ใหม่จาก \n อ่านเพิ่มเติมที่
hxxp://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
---------------------//---------------------------

ลองอ่านเพิ่มเติมได้จากที่นี่น่ะครับ 

hxxp://www.ninenik.com/content.php?arti_id=394
บันทึกการเข้า

Gary
คนรักเสียว
*

พลังน้ำใจ: 17
ออฟไลน์ ออฟไลน์

กระทู้: 120



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 21 พฤษภาคม 2012, 15:58:57 »

โค๊ด:
$sql = "SELECT * FROM product  WHERE id REGEXP '^[0-9]+$' ORDER BY id";
ลองดูครับ

ขอบคุณมากเลยครับ ทำได้แล้วครับ ถามเพิ่มเติมหน่อยนะครับ '^[0-9]+$' ผมลองลบเหลือ '[0-9]' ก็ยังแสดงผลได้เหมือนเดิม ก็เลยอยากทราบว่า ^ กับ  +$ มีประโยชน์ยังไงครับ

แล้วถ้าผมต้องการให้เลือกค่าที่ id = 2 เท่านั้น ผมสามารถเขียนโค้ดเป็น id REGEXP '[2]' แบบนี้ได้เลยใช่ปะครับ

$sql = "SELECT * FROM product WHERE id =2";
แค่นี้พอ ไม่ต้อง order by เพราะมันจะมาแค่ record เดียว
บันทึกการเข้า

nuningplus
สมุนแก๊งเสียว
*

พลังน้ำใจ: 137
ออฟไลน์ ออฟไลน์

กระทู้: 624



ดูรายละเอียด
« ตอบ #7 เมื่อ: 21 พฤษภาคม 2012, 17:26:31 »

โค๊ด:
$sql = "SELECT * FROM product  WHERE id REGEXP '^[0-9]+$' ORDER BY id";
ลองดูครับ

ขอบคุณมากเลยครับ ทำได้แล้วครับ ถามเพิ่มเติมหน่อยนะครับ '^[0-9]+$' ผมลองลบเหลือ '[0-9]' ก็ยังแสดงผลได้เหมือนเดิม ก็เลยอยากทราบว่า ^ กับ  +$ มีประโยชน์ยังไงครับ

แล้วถ้าผมต้องการให้เลือกค่าที่ id = 2 เท่านั้น ผมสามารถเขียนโค้ดเป็น id REGEXP '[2]' แบบนี้ได้เลยใช่ปะครับ

$sql = "SELECT * FROM product WHERE id =2";
แค่นี้พอ ไม่ต้อง order by เพราะมันจะมาแค่ record เดียว

ขอบคุณครับ อยากทราบว่ามันมีค่าเท่ากันใช่ไหมครับ ระหว่าง  id = 2 กับ id REGEXP '[2]'

ผมจำเป็นต้องใช้ฟังก์ชั่น REGEXP อะครับ เพราะจะสะดวกเวลารับค่าฟอร์มจากหน้าอื่น ๆ อื่น มาครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์