第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

測試MySQL表中是否存在行的最佳方法

測試MySQL表中是否存在行的最佳方法

瀟湘沐 2019-07-01 15:56:58
我試圖找出表中是否存在一行。使用MySQL,這樣的查詢更好嗎:SELECT COUNT(*) AS total FROM table1 WHERE ...并檢查總數(shù)是否為非零,還是執(zhí)行如下查詢更好:SELECT * FROM table1 WHERE ... LIMIT 1檢查是否返回了行?在這兩個(gè)查詢中,WHERE子句都使用索引。測試MySQL表中是否存在行的最佳方法
查看完整描述

3 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊

您也可以嘗試使用

SELECT EXISTS(SELECT * FROM table1 WHERE ...)

文獻(xiàn)

根據(jù)以下評論:

SELECT EXISTS(SELECT 1 FROM table1 WHERE ...)


查看完整回答
反對 回復(fù) 2019-07-01
?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

我最近對這個(gè)問題做了一些研究。如果字段是文本字段,非唯一字段,則實(shí)現(xiàn)該字段的方式必須是不同的。

我用文本字段做了一些測試??紤]到我們有一個(gè)包含1M條目的表。37項(xiàng)等于“某物”:

  • SELECT * FROM test WHERE texte LIKE '%something%' LIMIT 1

    帶著

    mysql_num_rows()

    :0.039061069488525

    (更快)

  • SELECT count(*) as count FROM test WHERE text LIKE '%something%

    :16.028197050095s。
  • SELECT EXISTS(SELECT 1 FROM test WHERE text LIKE '%something%')

    :0.87045907974243。
  • SELECT EXISTS(SELECT 1 FROM test WHERE text LIKE '%something%' LIMIT 1)

    :0.044898986816406 s。

但是現(xiàn)在,對于BIGINTPK字段,只有一個(gè)條目等于“321321”:

  • SELECT * FROM test2 WHERE id ='321321' LIMIT 1

    帶著

    mysql_num_rows()

    :0.0089840888977051。
  • SELECT count(*) as count FROM test2 WHERE id ='321321'

    :0.00033879280090332 s。
  • SELECT EXISTS(SELECT 1 FROM test2 WHERE id ='321321')

    *0.00023889541625977
  • SELECT EXISTS(SELECT 1 FROM test2 WHERE id ='321321' LIMIT 1)

    *0.00020313262939453

    (更快)


查看完整回答
反對 回復(fù) 2019-07-01
?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

例子:


mysql> SELECT * FROM table_1;

+----+--------+

| id | col1   |

+----+--------+

|  1 | foo    |

|  2 | bar    |

|  3 | foobar |

+----+--------+

3 rows in set (0.00 sec)


mysql> SELECT EXISTS(SELECT 1 FROM table_1 WHERE id = 1);

+--------------------------------------------+

| EXISTS(SELECT 1 FROM table_1 WHERE id = 1) |

+--------------------------------------------+

|                                          1 |

+--------------------------------------------+

1 row in set (0.00 sec)


mysql> SELECT EXISTS(SELECT 1 FROM table_1 WHERE id = 9);

+--------------------------------------------+

| EXISTS(SELECT 1 FROM table_1 WHERE id = 9) |

+--------------------------------------------+

|                                          0 |

+--------------------------------------------+

1 row in set (0.00 sec)

使用別名:


mysql> SELECT EXISTS(SELECT 1 FROM table_1 WHERE id = 1) AS mycheck;

+---------+

| mycheck |

+---------+

|       1 |

+---------+

1 row in set (0.00 sec)


查看完整回答
反對 回復(fù) 2019-07-01
  • 3 回答
  • 0 關(guān)注
  • 685 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號