MySQL PROCEDURE วิธีใช้ชื่อ Table จาก argument เเละเงื่อนไขอื่นๆ

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: MySQL PROCEDURE วิธีใช้ชื่อ Table จาก argument เเละเงื่อนไขอื่นๆ

MySQL PROCEDURE วิธีใช้ชื่อ Table จาก argument เเละเงื่อนไขอื่นๆ

โดย thatsawan » 24/09/2016 1:32 pm

กรณีที่ต้องการใส่เงื่อนไขเพิ่มเข้าไป
จะใช้

โค้ด: เลือกทั้งหมด

',ตัวแปร ,'  

โค้ด: เลือกทั้งหมด

CREATE DEFINER=`root`@`localhost` PROCEDURE `test_table_name`(IN `table_name_tmp` VARCHAR(40), IN `id` INT)
    NO SQL
BEGIN
SET @t1 =CONCAT('SELECT * FROM ',table_name_tmp ,' where id =', id);
 PREPARE stmt3 FROM @t1;
 EXECUTE stmt3;
 DEALLOCATE PREPARE stmt3;
END

ในตัวอย่างเราจะให้ Where ตาม Id เราก็ต้องรับค่า argument มา 2 ตัว 1 ชื่อตาราง 2 เป็น ID

โค้ด: เลือกทั้งหมด

call test_table_name('fu1dm_assets',1)  

ข้างบน