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

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

MySQL在數(shù)據(jù)庫數(shù)組字段中查找數(shù)組值

MySQL在數(shù)據(jù)庫數(shù)組字段中查找數(shù)組值

PHP
慕無忌1623718 2023-09-15 21:07:51
我有一個(gè)數(shù)組,它可以包含不同的值,例如:數(shù)組( [0] => General Pharmacy [1] => Geriatric Pharmacy )WordPress DB 在 meta_value 中包含以下數(shù)組:a:4:{i:0;s:20:"Allgemeine Pharmazie";i:1;s:22:"Geriatrische Pharmazie";i:2;s:16: "Fachascient*in";s:8:"other_16";s:8:"Tierarzt";}我想獲取數(shù)據(jù)庫中具有數(shù)組值的用戶的 user_id 。我嘗試了這個(gè)問題的解決方案PHP/MySql search array with array$zuqual = $this->userInput["Zuquali"];$imploded = (implode(",", $zuqual));print_r($zuqual); //output Array ( [0] => Allgemeine Pharmazie [1] => Geriatrische Pharmazie )if(!empty($zuqual)){   $result = $this->wpdb->get_col($this->wpdb->prepare("SELECT user_id FROM wp_usermeta WHERE meta_key='addition_qualification' AND meta_value IN ('".$imploded."')"));}var_dump($result);但我只得到空結(jié)果,而且我認(rèn)為這不是正確的查詢,因?yàn)槿绻谠抵姓业綌?shù)組元素(Allgemeine Pharmazie 和 Geriatrische Pharmazie),我想要 user_id,對(duì)吧?在此先感謝您的幫助 :)
查看完整描述

1 回答

?
慕哥9229398

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

由于您的數(shù)據(jù)存儲(chǔ)為 PHP 序列化數(shù)組,因此您需要首先提取通用數(shù)據(jù)并循環(huán)遍歷它,或者需要執(zhí)行 LIKE 查詢。

WordPress 有一個(gè)專門的函數(shù)來正確轉(zhuǎn)義 LIKE 參數(shù),稱為wpdb::esc_like.?運(yùn)行完之后,SQL 應(yīng)該看起來像這樣:

SELECT

? ? user_id

FROM

? ? wp_usermeta

WHERE

? ? meta_key='addition_qualification'

? ? AND

? ? (

? ? ? ? meta_value? LIKE %s

? ? ? ? OR

? ? ? ? meta_value? LIKE %s?

? ? )

一旦你調(diào)用該 SQL 的準(zhǔn)備,它將被轉(zhuǎn)換為:


SELECT

? ? user_id

FROM

? ? wp_usermeta

WHERE

? ? meta_key='addition_qualification'

? ? AND

? ? (

? ? ? ? meta_value? LIKE '%Allgemeine Pharmazie%'

? ? ? ? OR

? ? ? ? meta_value? LIKE '%Geriatrische Pharmazie%'

? ? )

這不是最理想的解決方案,但它可能是在 WordPress 上下文中處理此類數(shù)據(jù)的最佳解決方案。這是創(chuàng)建上述內(nèi)容的代碼:


$zuqual = $this->userInput["Zuquali"];


if (!empty($zuqual)) {

? ? $likeTemplate = ' meta_value? LIKE %s ';

? ??

? ? // This will hold the above string repeated once for each item in our search array

? ? $likes = [];

? ??

? ? // This will hold sanitized values to perform LIKE searches, each surrounded by percent signs

? ? $params = [];

? ? foreach ($zuqual as $item) {

? ? ? ? $likes[] = $likeTemplate;

? ? ? ? $params[] = '%' . $this->wpdb->esc_like($item) . '%';

? ? }

? ??

? ? // If we have more than one search term, this will join with the OR, otherwise it will be left as-is

? ? $likeSql = implode(' OR ', $likes);

? ??

? ? // Create our query, remembering to surround the nested part with parentheses

? ? $sql = "SELECT user_id FROM wp_usermeta WHERE meta_key='addition_qualification' AND (" . $likeSql . ")";

? ??

? ? // Pass our escaped params in

? ? $prepared = $this->wpdb->prepare($sql, $params);

? ? $result = $this->wpdb->get_col($prepared);

}


查看完整回答
反對(duì) 回復(fù) 2023-09-15
  • 1 回答
  • 0 關(guān)注
  • 194 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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