Home > Backend Development > PHP Tutorial > Thinkphp where() method to find data optimization

Thinkphp where() method to find data optimization

WBOY
Release: 2016-07-06 13:52:07
Original
1098 people have browsed it

The first way

<code>$bank = array(12) {
  ["bank_id"] => string(1) "9"
  ["bank_type"] => string(1) "1"
  ["bank_operator_id"] => string(1) "2"
  ["bank_operator_name"] => string(9) "唐新朋"
  ["bank_operator_type"] => string(1) "3"
  ["bank_accept_id"] => string(1) "1"
  ["bank_accept_name"] => string(9) "汪昌宁"
  ["bank_accept_type"] => string(1) "1"
  ["bank_sum"] => string(5) "50000"
  ["bank_mark"] => string(3) "500"
  ["bank_confirm"] => string(1) "0"
  ["bank_create_time"] => string(10) "1467113725"
}

$m->where($bank)->setField('bank_confirm','1');</code>
Copy after login
Copy after login

The second way

<code>$bank = array(12) {
  ["bank_id"] => string(1) "9"
  ["bank_type"] => string(1) "1"
  ["bank_operator_id"] => string(1) "2"
  ["bank_operator_name"] => string(9) "唐新朋"
  ["bank_operator_type"] => string(1) "3"
  ["bank_accept_id"] => string(1) "1"
  ["bank_accept_name"] => string(9) "汪昌宁"
  ["bank_accept_type"] => string(1) "1"
  ["bank_sum"] => string(5) "50000"
  ["bank_mark"] => string(3) "500"
  ["bank_confirm"] => string(1) "0"
  ["bank_create_time"] => string(10) "1467113725"
}

$condition['bank_id'] = $bank["bank_id"];
$m->where($condition)->setField('bank_confirm','1');</code>
Copy after login
Copy after login

Both methods can achieve what I want but
Will the first method put pressure on the server or database

The second option is to write this extra line of code

<code>$condition['bank_id'] = $bank["bank_id"];</code>
Copy after login
Copy after login

Tangled (⊙﹏⊙)

Reply content:

The first way

<code>$bank = array(12) {
  ["bank_id"] => string(1) "9"
  ["bank_type"] => string(1) "1"
  ["bank_operator_id"] => string(1) "2"
  ["bank_operator_name"] => string(9) "唐新朋"
  ["bank_operator_type"] => string(1) "3"
  ["bank_accept_id"] => string(1) "1"
  ["bank_accept_name"] => string(9) "汪昌宁"
  ["bank_accept_type"] => string(1) "1"
  ["bank_sum"] => string(5) "50000"
  ["bank_mark"] => string(3) "500"
  ["bank_confirm"] => string(1) "0"
  ["bank_create_time"] => string(10) "1467113725"
}

$m->where($bank)->setField('bank_confirm','1');</code>
Copy after login
Copy after login

The second way

<code>$bank = array(12) {
  ["bank_id"] => string(1) "9"
  ["bank_type"] => string(1) "1"
  ["bank_operator_id"] => string(1) "2"
  ["bank_operator_name"] => string(9) "唐新朋"
  ["bank_operator_type"] => string(1) "3"
  ["bank_accept_id"] => string(1) "1"
  ["bank_accept_name"] => string(9) "汪昌宁"
  ["bank_accept_type"] => string(1) "1"
  ["bank_sum"] => string(5) "50000"
  ["bank_mark"] => string(3) "500"
  ["bank_confirm"] => string(1) "0"
  ["bank_create_time"] => string(10) "1467113725"
}

$condition['bank_id'] = $bank["bank_id"];
$m->where($condition)->setField('bank_confirm','1');</code>
Copy after login
Copy after login

Both methods can achieve what I want but
Will the first method put pressure on the server or database

The second option is to write this extra line of code

<code>$condition['bank_id'] = $bank["bank_id"];</code>
Copy after login
Copy after login

Tangled (⊙﹏⊙)

Thanks for the invitation. I don’t know if bank_id in your query is unique. If it is the only second condition, it will be enough. Although many of your first conditions can be queried with high accuracy, I think they are all of the string type. If they all have indexes, it’s fine. If some of them don’t have indexes, and one condition is enough, I recommend the second condition.

Thank you for the invitation. As expected, bank_id must be the unique key or primary key, so it must be
$m->where(array('bank_id' => $bank['bank_id']))->setField('bank_confirm','1');

The person above has answered your question correctly. If bank_id is the unique key, you can query with only one condition

Theoretically, the more query conditions, the more filtered data, and the faster the query. But just have a primary key or index field, add limit=1, and the efficiency is good enough.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template