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

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

如何使用占位符'?在 LIKE 運算符中?

如何使用占位符'?在 LIKE 運算符中?

萬千封印 2022-10-26 15:56:25
我正在開發(fā)一個以 MySQL 作為后端的基于 Java 的桌面應用程序。在此應用程序中有一個名為“搜索”的部分,其中有四個字段 - 關鍵技能(文本字段)、經(jīng)驗(組合框)、城市(組合框)和通知期(組合框)。所有四個字段的值都將在運行時提供。關鍵技能是逗號分隔值。我想要一個使用 LIKE 運算符的 MySQL 查詢,借助它我不必每次都在 Key Skills 文本字段中提供逗號分隔值。我只在運行時提供一個值,然后基于該值,查詢將使用 LIKE 運算符獲取結果。我的查詢?nèi)缦滤疚沂褂昧苏嘉环???因為我的查詢是動態(tài)類型。是否可以在 LIKE 運算符中使用占位符,還是僅適用于靜態(tài)類型查詢?String query = "SELECT F_Name, L_Name, Experience, Key_Skills,        FROM Candidate cd      JOIN Candidate2 cd2 ON(cd.Mobile = cd2.C_Mobile)       WHERE Key_Skills LIKE '%?%'"; 當我執(zhí)行上述查詢時,它產(chǎn)生了一個錯誤說明 - 您的 SQL 語法有錯誤;檢查與您的 MySQL 服務器版本服務器版本相對應的手冊,以在第 1 行的“FROM Candidate cd JOIN Candidate2 cd2 ON(cd.Mobile = cd2.C_Mobile) WHERE Key_Skills”附近使用正確的語法
查看完整描述

3 回答

?
拉風的咖菲貓

TA貢獻1995條經(jīng)驗 獲得超2個贊

您可以使用concat()

String query = 
  "SELECT F_Name, L_Name, Experience, Key_Skills " + 
  "FROM Candidate cd JOIN Candidate2 cd2 ON (cd.Mobile = cd2.C_Mobile) " + 
  "WHERE Key_Skills LIKE concat('%', ?, '%')";

當您通過傳遞參數(shù)執(zhí)行上述代碼時,'someskill'該函數(shù)concat()將生成此字符串'%someskill%',并且該列Key_Skills將與此連接的字符串進行比較。


查看完整回答
反對 回復 2022-10-26
?
幕布斯6054654

TA貢獻1876條經(jīng)驗 獲得超7個贊

您可以在 Java 代碼中添加前綴和后綴,而不是在 SQL 中連接它們。


WHERE Key_Skills LIKE ?"; 

甚至可能允許通配符:


keySkills = keySkills.replace('*', '%');

keySkills = keySkills.replace('?', '_');


preparedStatement.setString(1, "%" + keySkills + "%");

JDBC 代碼將替換?為準備好的語句值,強制轉換為預期的 SQL 字符串類型。并setString負責轉義撇號和其他人。


查看完整回答
反對 回復 2022-10-26
?
皈依舞

TA貢獻1851條經(jīng)驗 獲得超3個贊

使用 concat 您可以like以一種簡單的方式構建字符串來管理參數(shù)值:

   String query = "SELECT F_Name, L_Name, Experience, Key_Skills
     FROM Candidate cd 
     JOIN Candidate2 cd2 ON(cd.Mobile = cd2.C_Mobile) 
     WHERE Key_Skills LIKE concat('%' , ?, '%')";

注意你有一個錯誤的逗號key_Skills, FROM- 你必須刪除它。

可能是您的列不明確,因此我已使用完全限定的語法更新了答案。

  String query = "SELECT 
        cd.F_Name
      , cd.L_Name
      , cd.Experience
      , cd.Key_Skills
     FROM Candidate cd 
     INNER JOIN Candidate2 cd2 ON cd.Mobile = cd2.C_Mobile 
     WHERE cd.Key_Skills LIKE concat('%' , ?, '%')";


查看完整回答
反對 回復 2022-10-26
  • 3 回答
  • 0 關注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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