คำถามติดแท็ก mysql

MySQL เป็นโอเพ่นซอร์สระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่ใช้ภาษาคิวรีเชิงโครงสร้าง (SQL) ห้ามใช้แท็กนี้สำหรับฐานข้อมูลอื่น ๆ เช่น SQL Server, SQLite เป็นต้นฐานข้อมูลเหล่านี้เป็นฐานข้อมูลที่แตกต่างกันซึ่งทั้งหมดใช้ภาษาของ SQL เพื่อจัดการข้อมูล

7
ความแตกต่างระหว่างสคีมา / ฐานข้อมูลใน MySQL
มีความแตกต่างระหว่างสคีมาและฐานข้อมูลใน MySQL หรือไม่? ใน SQL Server ฐานข้อมูลเป็นคอนเทนเนอร์ระดับที่สูงกว่าสัมพันธ์กับสคีมา ฉันอ่านCreate SchemaและCreate Databaseทำสิ่งเดียวกันใน MySQL ซึ่งทำให้ฉันเชื่อว่า schemas และฐานข้อมูลเป็นคำที่แตกต่างกันสำหรับวัตถุเดียวกัน

3
วิธีรับค่าสูงสุดสองค่าใน MySQL?
ฉันพยายาม แต่ล้มเหลว: mysql> select max(1,0); ข้อผิดพลาด 1064 (42000): คุณมีข้อผิดพลาดในไวยากรณ์ SQL ของคุณ; ตรวจสอบคู่มือ ที่สอดคล้องกับรุ่นเซิร์ฟเวอร์ MySQL ของคุณเพื่อใช้ไวยากรณ์ที่ถูกต้อง ใกล้ '0)' ที่บรรทัด 1
290 mysql  max 

8
แนวทางปฏิบัติที่ดีที่สุดสำหรับความยาวคอลัมน์ SQL varchar [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ทุกครั้งที่มีการตั้งค่าตาราง SQL ใหม่หรือเพิ่มใหม่varcharคอลัมน์ตารางที่มีอยู่ผมสงสัยว่าสิ่งหนึ่งที่: lengthสิ่งที่เป็นค่าที่ดีที่สุดสำหรับ ดังนั้นให้บอกว่าคุณมีคอลัมน์ที่เรียกว่าประเภทname varcharดังนั้นคุณต้องเลือกความยาว ฉันไม่สามารถนึกชื่อได้> 20 ตัวอักษร แต่คุณจะไม่มีทางรู้ แต่แทนที่จะใช้ 20 ฉันจะปัดเศษขึ้นเป็นเลข 2 ^ n ถัดไปเสมอ ในกรณีนี้ฉันจะเลือก 32 เป็นความยาว ฉันทำอย่างนั้นเพราะจากมุมมองของนักวิทยาศาสตร์คอมพิวเตอร์ตัวเลข 2 ^ n ดูเหมือนevenฉันมากกว่าตัวเลขอื่นและฉันแค่สมมติว่าสถาปัตยกรรมด้านล่างสามารถจัดการตัวเลขเหล่านั้นได้ดีกว่าคนอื่นเล็กน้อย ในทางกลับกันเซิร์ฟเวอร์ MSSQL ตัวอย่างเช่นตั้งค่าความยาวเริ่มต้นเป็น 50 เมื่อคุณเลือกที่จะสร้างคอลัมน์ varchar นั่นทำให้ฉันคิดถึงมัน ทำไมต้อง 50 มันเป็นเพียงตัวเลขสุ่มหรือตามความยาวคอลัมน์เฉลี่ยหรืออะไร นอกจากนี้ยังอาจเป็น - หรืออาจเป็น - ที่การใช้งานเซิร์ฟเวอร์ SQL ที่แตกต่างกัน …

4
MySQL เพิกเฉยต่อค่าที่ไม่เป็นธรรมกับข้อ จำกัด ที่ไม่ซ้ำกันหรือไม่?
ฉันมีคอลัมน์อีเมลที่ฉันต้องการให้เป็นเอกลักษณ์ แต่ฉันต้องการให้มันยอมรับค่าว่าง ฐานข้อมูลของฉันสามารถมีอีเมลที่ไม่มีค่าได้ 2 ฉบับ
289 mysql  database 

15
ฉันจะค้นหา (ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) ในคอลัมน์โดยใช้สัญลักษณ์แทน LIKE ได้อย่างไร
ฉันมองไปรอบ ๆ และไม่พบสิ่งที่ฉันเป็นหลังจากนั้นที่นี่ไป SELECT * FROM trees WHERE trees.`title` LIKE '%elm%' มันใช้งานได้ดี แต่ไม่ใช่ถ้าต้นไม้มีชื่อว่า Elm หรือ ELM ฯลฯ ... ฉันจะทำให้ตัวพิมพ์เล็กและตัวพิมพ์เล็กของ SQL ไม่ได้สำหรับการค้นหาไวด์การ์ดนี้ได้อย่างไร ฉันใช้ MySQL 5 และ Apache

8
วิธีการตั้งค่าเริ่มต้นและการเพิ่มอัตโนมัติใน MySQL?
ฉันจะตั้งค่าเริ่มต้นสำหรับคอลัมน์ "id" ในตาราง MySQL ที่เริ่มจาก 1001 ได้อย่างไร ฉันต้องการแทรก "INSERT INTO users (name, email) VALUES ('{$name}', '{$email}')"; โดยไม่ระบุค่าเริ่มต้นสำหรับคอลัมน์ id

18
ฉันจะตรวจสอบได้อย่างไรว่าคอลัมน์ว่างเปล่าหรือไม่ว่างใน MySQL?
ฉันมีคอลัมน์ในตารางซึ่งอาจมีค่า Null หรือค่าว่าง ฉันจะตรวจสอบได้อย่างไรว่าคอลัมน์ว่างเปล่าหรือเป็นโมฆะในแถวที่อยู่ในตาราง (e.g. null or '' or ' ' or ' ' and ...)
288 mysql  sql 

7
INSERT พร้อม SELECT
ฉันมีแบบสอบถามที่แทรกโดยใช้ตัวเลือก: INSERT INTO courses (name, location, gid) SELECT name, location, gid FROM courses WHERE cid = $cid เป็นไปได้หรือไม่ที่จะเลือก "ชื่อที่ตั้ง" สำหรับการแทรกและตั้งค่า gid เป็นอย่างอื่นในแบบสอบถาม
287 mysql  sql  insert-select 


8
วิธีการหลีกเลี่ยงการหยุดชะงักของ mysql 'เมื่อพยายามล็อค; ลองเริ่มธุรกรรมใหม่ '
ฉันมีตาราง innoDB ซึ่งบันทึกผู้ใช้ออนไลน์ มันได้รับการปรับปรุงในทุกหน้ารีเฟรชโดยผู้ใช้เพื่อติดตามว่าพวกเขาอยู่ในหน้าและวันที่เข้าถึงล่าสุดไปยังเว็บไซต์ ฉันมี cron ที่ทำงานทุก ๆ 15 นาทีเพื่อลบระเบียนเก่า ฉันพบ 'Deadlock เมื่อพยายามล็อค; ลองรีสตาร์ทธุรกรรม 'เป็นเวลาประมาณ 5 นาทีเมื่อคืนและดูเหมือนว่าจะเป็นเมื่อเรียกใช้ INSERT ในตารางนี้ มีคนแนะนำวิธีหลีกเลี่ยงข้อผิดพลาดนี้ได้ไหม === แก้ไข === นี่คือแบบสอบถามที่กำลังทำงานอยู่: เข้าชมไซต์ครั้งแรก: INSERT INTO onlineusers SET ip = 123.456.789.123, datetime = now(), userid = 321, page = '/thispage', area = 'thisarea', type = 3 ในการรีเฟรชแต่ละหน้า: UPDATE onlineusers …
286 mysql  deadlock 

16
เปลี่ยนชื่อตารางใน MySQL
การเปลี่ยนชื่อตารางไม่ทำงานใน MySQL RENAME TABLE group TO member; ข้อความแสดงข้อผิดพลาดคือ #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group RENAME TO member' at line 1 แบบสอบถามทำงานได้ดีบนโต๊ะอื่น ๆ สำหรับผม groupแต่ไม่ได้อยู่กับโต๊ะ

11
ฉันจะทำการเปรียบเทียบสตริงตัวพิมพ์เล็ก - ใหญ่ของ SQL ใน MySQL ได้อย่างไร
ฉันมีฟังก์ชั่นที่คืนค่าตัวอักษรห้าตัวพร้อมตัวพิมพ์เล็ก ถ้าฉันทำแบบสอบถามในสายนี้มันจะคืนค่าโดยไม่คำนึงถึงกรณี ฉันจะทำให้สตริงเคียวรี MySQL เป็นตัวพิมพ์เล็กหรือใหญ่ได้อย่างไร?

30
ข้อผิดพลาดในการเริ่มต้นเซิร์ฟเวอร์ MySql 'เซิร์ฟเวอร์ออกโดยไม่อัปเดตไฟล์ PID'
บน Snow Leopard การเริ่มต้น MySQL ให้ข้อผิดพลาดต่อไปนี้: เซิร์ฟเวอร์หยุดทำงานโดยไม่อัปเดตไฟล์ PID my.cnf [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16K pid-file=/var/run/mysqld/mysqld.pid [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
284 mysql 

24
ROW_NUMBER () ใน MySQL
มีวิธีที่ดีใน MySQL เพื่อทำซ้ำฟังก์ชัน SQL Server ROW_NUMBER()หรือไม่ ตัวอย่างเช่น: SELECT col1, col2, ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow FROM Table1 ยกตัวอย่างเช่นฉันสามารถเพิ่มเงื่อนไขที่จะ จำกัดintRowไว้ที่ 1 เพื่อรับแถวเดียวที่มีค่าสูงสุดcol3สำหรับแต่ละ(col1, col2)คู่

12
MySQL เรียงลำดับตามจำนวน Nulls
ขณะนี้ฉันกำลังทำ OrderBy พื้นฐานมากในคำสั่งของฉัน SELECT * FROM tablename WHERE visible=1 ORDER BY position ASC, id DESC ปัญหานี้คือรายการ NULL สำหรับ 'ตำแหน่ง' ถือว่าเป็น 0 ดังนั้นรายการทั้งหมดที่มีตำแหน่งเป็น NULL จะปรากฏก่อนหน้ารายการที่มี 1,2,3,4 เช่น: NULL, NULL, NULL, 1, 2, 3, 4 มีวิธีการสั่งซื้อดังต่อไปนี้: 1, 2, 3, 4, NULL, NULL, NULL.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.