在 mysql 中,* 的含義
MySQL 中的星號 (*) 代表“所有”。在不同上下文中,它具有不同的用法。
1. 選擇所有列
使用 * 可以選擇表中的所有列:
<code class="sql">SELECT * FROM table_name;</code>
登錄后復制
它等效于寫出表中所有列的名稱:
<code class="sql">SELECT column1, column2, ..., columnN FROM table_name;</code>
登錄后復制
2. 選擇所有行
在子查詢中,* 可用于選擇來自主查詢的所有行:
<code class="sql">SELECT * FROM (SELECT * FROM table_name WHERE condition) AS subquery;</code>
登錄后復制
3. JOIN 表
在 JOIN 語句中,* 可用于指定連接所有行:
<code class="sql">SELECT * FROM table1 JOIN table2 ON table1.id = table2.id;</code>
登錄后復制
4. 通配符
在 LIKE 子句中,* 可用作通配符,匹配 0 個或多個字符:
<code class="sql">SELECT * FROM table_name WHERE name LIKE '%john%';</code>
登錄后復制
它將匹配姓名中包含“john”的任何行。
5. 正則表達式
在 REGEXP 子句中,* 可用作量詞,匹配前面的模式 0 次或多次:
<code class="sql">SELECT * FROM table_name WHERE name REGEXP '.*john.*';</code>
登錄后復制
它將匹配任何開頭或結尾都有“john”的姓名。
6. 隱式轉換
在某些情況下,MySQL 會自動將 * 轉換為其他類型。例如,在數值上下文中,它將轉換為數字:
<code class="sql">SELECT * FROM table_name WHERE id = 10;</code>
登錄后復制
這等同于:
<code class="sql">SELECT * FROM table_name WHERE id = 10.0;</code>
登錄后復制
總之,MySQL 中的星號 (*) 代表“所有”,在不同的上下文中具有不同的含義。它通常用于選擇所有列、行或在 JOIN、LIKE 和 REGEXP 子句中充當通配符或量詞。