{"id":1117,"date":"2025-06-12T13:22:14","date_gmt":"2025-06-12T05:22:14","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1117.html"},"modified":"2025-06-12T13:22:14","modified_gmt":"2025-06-12T05:22:14","slug":"%e5%9c%a8-doctrine-%e4%b8%ad%e4%bd%bf%e7%94%a8-like-%e8%bf%90%e7%ae%97%e7%ac%a6%ef%bc%9a%e5%ae%9e%e7%94%a8%e6%8c%87%e5%8d%97%ef%bc%88%e5%90%ab%e7%a4%ba%e4%be%8b%ef%bc%89","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1117.html","title":{"rendered":"\u5728 Doctrine \u4e2d\u4f7f\u7528 LIKE \u8fd0\u7b97\u7b26\uff1a\u5b9e\u7528\u6307\u5357\uff08\u542b\u793a\u4f8b\uff09"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Doctrine &#20013;&#20351;&#29992; LIKE &#36816;&#31639;&#31526;&#26159;&#22788;&#29702;&#25968;&#25454;&#24211;&#26597;&#35810;&#26102;&#38750;&#24120;&#24120;&#35265;&#30340;&#38656;&#27714;&#12290;<code>LIKE<\/code> &#36816;&#31639;&#31526;&#20801;&#35768;&#20320;&#22312;&#23383;&#31526;&#20018;&#20013;&#36827;&#34892;&#27169;&#24335;&#21305;&#37197;&#65292;&#36825;&#23545;&#20110;&#25628;&#32034;&#21644;&#36807;&#28388;&#25968;&#25454;&#38750;&#24120;&#26377;&#29992;&#12290;&#19979;&#38754;&#26159;&#19968;&#20123;&#23454;&#29992;&#30340;&#25351;&#21335;&#21644;&#31034;&#20363;&#20195;&#30721;&#65292;&#24110;&#21161;&#20320;&#26356;&#22909;&#22320;&#29702;&#35299;&#21644;&#20351;&#29992; <code>LIKE<\/code> &#36816;&#31639;&#31526;&#12290;<\/p>\n<h3>&#22522;&#26412;&#35821;&#27861;<\/h3>\n<pre><code class=\"language-sql\">SELECT * FROM table_name WHERE column_name LIKE pattern;<\/code><\/pre>\n<ul>\n<li><code>table_name<\/code>&#65306;&#20320;&#35201;&#26597;&#35810;&#30340;&#34920;&#21517;&#12290;<\/li>\n<li><code>column_name<\/code>&#65306;&#20320;&#35201;&#24212;&#29992; <code>LIKE<\/code> &#36816;&#31639;&#31526;&#30340;&#21015;&#21517;&#12290;<\/li>\n<li>\n<p><code>pattern<\/code>&#65306;&#21305;&#37197;&#27169;&#24335;&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;&#36890;&#37197;&#31526;&#26469;&#34920;&#31034;&#19981;&#21516;&#31867;&#22411;&#30340;&#23383;&#31526;&#65306;<\/p>\n<ul>\n<li><code>%<\/code>&#65306;&#21305;&#37197;&#20219;&#24847;&#25968;&#37327;&#30340;&#23383;&#31526;&#65288;&#21253;&#25324;&#38646;&#20010;&#23383;&#31526;&#65289;&#12290;<\/li>\n<li><code>_<\/code>&#65306;&#21305;&#37197;&#21333;&#20010;&#23383;&#31526;&#12290;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>&#31034;&#20363;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>users<\/code> &#30340;&#34920;&#65292;&#20854;&#20013;&#26377;&#19968;&#21015; <code>name<\/code>&#65292;&#25105;&#20204;&#24819;&#35201;&#26597;&#25214;&#25152;&#26377;&#21517;&#23383;&#20197; &#8220;John&#8221; &#24320;&#22836;&#30340;&#29992;&#25143;&#12290;<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM users WHERE name LIKE 'John%';<\/code><\/pre>\n<p>&#36825;&#20010;&#26597;&#35810;&#23558;&#36820;&#22238;&#25152;&#26377; <code>name<\/code> &#21015;&#20540;&#20197; &#8220;John&#8221; &#24320;&#22836;&#30340;&#35760;&#24405;&#12290;<\/p>\n<h3>&#27169;&#24335;&#21305;&#37197;<\/h3>\n<ol>\n<li>\n<p><strong>&#31934;&#30830;&#21305;&#37197;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM users WHERE name = 'John Doe';<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21069;&#32512;&#21305;&#37197;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM users WHERE name LIKE 'John%';<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21518;&#32512;&#21305;&#37197;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM users WHERE name LIKE '%Doe';<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#27169;&#31946;&#21305;&#37197;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM users WHERE name LIKE '%Doe';<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#32452;&#21512;&#20351;&#29992;&#36890;&#37197;&#31526;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM users WHERE name LIKE 'J%e%';<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>&#20351;&#29992; PHP &#21644; Doctrine &#26597;&#35810;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#20351;&#29992; PHP &#21644; Doctrine &#36827;&#34892;&#31867;&#20284;&#26597;&#35810;&#30340;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">use DoctrineORMEntityManagerInterface;\n\n\/\/ &#33719;&#21462; EntityManager &#23454;&#20363;\n$entityManager = $this-&gt;getDoctrine()-&gt;getManager();\n\n\/\/ &#21019;&#24314;&#26597;&#35810;\n$queryBuilder = $entityManager-&gt;createQueryBuilder();\n$queryBuilder-&gt;select('u')\n             -&gt;from('AppEntityUser', 'u')\n             -&gt;where('u.name LIKE :namePattern');\n\n\/\/ &#35774;&#32622;&#21442;&#25968;\n$queryBuilder-&gt;setParameter('namePattern', 'John%');\n\n\/\/ &#25191;&#34892;&#26597;&#35810;\n$results = $queryBuilder-&gt;getQuery()-&gt;getResult();\n\nforeach ($results as $user) {\n    echo $user-&gt;getName() . \"n\";\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010;&#26597;&#35810;&#26500;&#24314;&#22120;&#65292;&#24182;&#35774;&#32622;&#20102; <code>name<\/code> &#21015;&#30340; <code>LIKE<\/code> &#36816;&#31639;&#31526;&#20026; <code>'John%'<\/code>&#12290;&#28982;&#21518;&#25191;&#34892;&#26597;&#35810;&#24182;&#36755;&#20986;&#32467;&#26524;&#12290;<\/p>\n<h3>&#24635;&#32467;<\/h3>\n<p>&#36890;&#36807;&#20102;&#35299;&#21644;&#20351;&#29992; <code>LIKE<\/code> &#36816;&#31639;&#31526;&#65292;&#20320;&#21487;&#20197;&#22312; Doctrine &#20013;&#26377;&#25928;&#22320;&#36827;&#34892;&#22797;&#26434;&#30340;&#25968;&#25454;&#24211;&#26597;&#35810;&#12290;&#25484;&#25569;&#36825;&#20123;&#22522;&#26412;&#29992;&#27861;&#21644;&#31034;&#20363;&#20195;&#30721;&#65292;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#39033;&#30446;&#24320;&#21457;&#20013;&#26356;&#28789;&#27963;&#22320;&#22788;&#29702;&#25968;&#25454;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h3>&#20171;&#32461;<\/h3><p>&#25484;&#25569;&#20351;&#29992;&#30340;&#26041;&#27861;&#26159;&#20851;&#38190;&#12290;<code>LIKE<\/code>&#36816;&#33829;&#21830;&#22312;Doctrine&#20013;&#33267;&#20851;&#37325;&#35201;&#65292;&#23545;&#20110;&#20351;&#29992;Symfony&#21644;Doctrine ORM&#21160;&#24577;&#26597;&#35810;&#21019;&#24314;&#30340;&#20219;&#20309;PHP&#24212;&#29992;&#31243;&#24207;&#26469;&#35828;&#37117;&#26159;&#22914;&#27492;&#12290;&#22312;&#36825;&#20010;&#20840;&#38754;&#30340;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#32034;Doctrine&#30340;&#21147;&#37327;&#12290;<code>LIKE<\/code>&#36816;&#33829;&#21830;&#65292;&#29992;&#23454;&#38469;&#20363;&#23376;&#23637;&#31034;&#20854;&#22810;&#21151;&#33021;&#24615;&#65292;&#24182;&#25552;&#20379;&#22312;&#21508;&#31181;&#22330;&#26223;&#20013;&#26377;&#25928;&#20351;&#29992;&#30340;&#26368;&#20339;&#23454;&#36341;&#12290;<\/p><h3>&#29702;&#35299;LIKE&#36816;&#31639;&#31526;<\/h3><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#26080;&#27861;&#29702;&#35299;&#20320;&#30340;&#38382;&#39064;&#12290;&#35831;&#37325;&#26032;&#25551;&#36848;&#20320;&#30340;&#38382;&#39064;&#25110;&#21477;&#23376;&#12290;<code>LIKE<\/code>&#22312;SQL&#20013;&#65292;operator&#29992;&#20110;&#22312;&#25351;&#23450;&#21015;&#20013;&#25628;&#32034;&#29305;&#23450;&#27169;&#24335;&#12290;&#22312;Doctrine&#30340;&#19978;&#19979;&#25991;&#20013;&#65292;&#23427;&#20351;&#24744;&#33021;&#22815;&#26500;&#24314;&#26597;&#35810;&#65292;&#36825;&#20123;&#26597;&#35810;&#21487;&#20197;&#22522;&#20110;&#23454;&#20307;&#23383;&#27573;&#20013;&#30340;&#28789;&#27963;&#27169;&#24335;&#36827;&#34892;&#25628;&#32034;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#35821;&#27861;&#31034;&#20363;&#65306;<\/p><pre><code>\nSELECT column_name\nFROM table_name\nWHERE column_name LIKE pattern;\n<\/code><\/pre><h3>&#22312;Doctrine&#30340;QueryBuilder&#20013;&#38598;&#25104;LIKE&#25805;&#20316;&#12290;<\/h3><p>Doctrine&#30340;QueryBuilder&#25552;&#20379;&#20102;&#19968;&#31181;&#36890;&#36807;&#31243;&#24207;&#21270;&#26041;&#24335;&#26500;&#24314;&#26597;&#35810;&#30340;&#26041;&#27861;&#12290;&#35753;&#25105;&#20204;&#26469;&#30475;&#19968;&#20010;&#20363;&#23376;&#65306;<\/p><pre><code>\n\/\/ src\/Repository\/ProductRepository.php\n\nuse DoctrineORMQueryBuilder;\n\npublic function findByProductNameLike($name)\n{\n    return $this-&gt;createQueryBuilder('p')\n               -&gt;where('p.name LIKE :name')\n               -&gt;setParameter('name', '%' . $name . '%')\n               -&gt;getQuery()\n               -&gt;getResult();\n}\n<\/code><\/pre><p>&#36825;&#27573;&#20195;&#30721;&#29255;&#27573;&#21019;&#24314;&#20102;&#19968;&#20010;&#33258;&#23450;&#20041;&#20179;&#24211;&#26041;&#27861;&#65292;&#35813;&#26041;&#27861;&#20351;&#29992;&#20102;&#20197;&#19979;&#20195;&#30721;&#65306;<code>LIKE<\/code>&#36816;&#33829;&#21830;&#21487;&#20197;&#26597;&#25214;&#21253;&#21547;&#29305;&#23450;&#27169;&#24335;&#30340;&#20135;&#21697;&#12290;<\/p><h3>&#31227;&#38500;&#29305;&#27530;&#23383;&#31526;<\/h3><p>&#29305;&#27530;&#23383;&#31526;&#65292;&#27604;&#22914;&#30334;&#20998;&#21495;&#65288;%&#65289;&#25110;&#19979;&#21010;&#32447;&#65288;_&#65289;&#65292;&#22312;&#36890;&#37197;&#31526;&#20013;&#20250;&#21464;&#25104;&#36890;&#37197;&#31526;&#12290;<code>LIKE<\/code>&#36816;&#33829;&#21830;&#19978;&#19979;&#25991;&#12290;&#20026;&#20102;&#25628;&#32034;&#36825;&#20123;&#29305;&#27530;&#23383;&#31526;&#65292;&#24744;&#24517;&#39035;&#22312;&#26597;&#35810;&#20013;&#23545;&#20854;&#36827;&#34892;&#36716;&#20041;&#65306;<\/p><pre><code>\n\/\/ Escaping percentage sign and underscore\n\nfunction escapeSpecialCharacters($value)\n{\n   return str_replace(['%', '_'], ['\\%', '\\_'], $value);\n}\n\npublic function findByProductNameExact($name)\n{\n   $escapedName = $this-&gt;escapeSpecialCharacters($name);\n   return $this-&gt;createQueryBuilder('p')\n              -&gt;where('p.name LIKE :name')\n              -&gt;setParameter('name', $escapedName)\n              -&gt;getQuery()\n              -&gt;getResult();\n}\n<\/code><\/pre><h3>&#20351;&#29992;LIKE&#19982;DQL&#65288;Doctrine&#26597;&#35810;&#35821;&#35328;&#65289;<\/h3><p>&#26377;&#26102;&#65292;&#20320;&#21487;&#33021;&#26356;&#20542;&#21521;&#20110;&#20351;&#29992;DQL&#65288;Domain-Driven Query Language&#65289;&#65292;&#36825;&#19982;SQL&#35821;&#27861;&#26356;&#20026;&#25509;&#36817;&#65292;&#29992;&#20110;&#22312;&#23454;&#20307;&#20179;&#24211;&#20869;&#37096;&#25191;&#34892;&#26597;&#35810;&#65306;<\/p><pre><code>\n\/\/ DQL example for LIKE operator\n\npublic function findByDescriptionLike($description)\n{\n   $entityManager = $this-&gt;getEntityManager();\n   $dql = 'SELECT p FROM AppEntityProduct p WHERE p.description LIKE :description';\n   $query = $entityManager-&gt;createQuery($dql)-&gt;setParameter('description', '%' . $description . '%');\n\n   return $query-&gt;getResult();\n}\n<\/code><\/pre><h3>&#24615;&#33021;&#32771;&#34385;&#22240;&#32032;<\/h3><p>&#22312;&#20351;&#29992;&#26102;&#65292;&#35831;&#20801;&#35768;&#25105;&#20026;&#24744;&#25552;&#20379;&#32763;&#35793;&#26381;&#21153;&#12290;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#65292;&#25105;&#20250;&#23558;&#20854;&#32763;&#35793;&#25104;&#20013;&#25991;&#24182;&#22238;&#22797;&#24744;&#12290;<code>LIKE<\/code>&#25805;&#20316;&#21592;&#65292;&#35201;&#22987;&#32456;&#32771;&#34385;&#24615;&#33021;&#30340;&#24433;&#21709;&#65292;&#23588;&#20854;&#26159;&#22312;&#22788;&#29702;&#22823;&#22411;&#25968;&#25454;&#38598;&#26102;&#12290;&#19968;&#33324;&#24773;&#20917;&#19979;&#65292;&#20351;&#29992;&#36890;&#37197;&#31526;&#24320;&#22836;&#30340;&#32034;&#24341;&#19981;&#20250;&#24110;&#21161;&#26597;&#35810;&#65307;&#22240;&#27492;&#65292;&#22914;&#26524;&#21487;&#33021;&#30340;&#35805;&#65292;&#35831;&#23613;&#37327;&#36991;&#20813;&#20351;&#29992;&#21069;&#23548;&#36890;&#37197;&#31526;&#12290;&#22312;&#36816;&#34892;&#22810;&#27425;&#30456;&#20284;&#26597;&#35810;&#26102;&#65292;&#20934;&#22791;&#24182;&#37325;&#29992;&#35821;&#21477;&#23545;&#35937;&#20197;&#25552;&#39640;&#25928;&#29575;&#12290;<\/p><p>&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><pre><code>use DoctrineORMEntityManagerInterface;\n\n\/\/ Get the EntityManager instance (replace with your setup)\n$entityManager = \/* Obtain your EntityManager here *\/;\n\n\/\/ Define a search term (without a leading wildcard for performance)\n$searchTerm = 'search';\n\n\/\/ Create a query builder\n$queryBuilder = $entityManager-&gt;createQueryBuilder();\n\n\/\/ Prepare a query using the LIKE operator\n$query = $queryBuilder\n    -&gt;select('e') \/\/ Replace 'e' with your entity alias\n    -&gt;from('YourEntity', 'e') \/\/ Replace 'YourEntity' with your entity class\n    -&gt;where($queryBuilder-&gt;expr()-&gt;like('e.columnName', ':searchTerm'))\n    -&gt;setParameter('searchTerm', '%' . $searchTerm . '%')\n    -&gt;getQuery();\n\n\/\/ Execute the query (you can reuse this query object)\n$results = $query-&gt;getResult();\n<\/code><\/pre><p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65306;<\/p><p>&#25105;&#20204;&#20934;&#22791;&#24182;&#25191;&#34892;&#26597;&#35810;&#65292;&#21033;&#29992;&#26597;&#35810;&#23545;&#35937;&#36827;&#34892;&#30456;&#20284;&#30340;&#26597;&#35810;&#12290;<\/p><p>&#25105;&#20204;&#20351;&#29992;&#26597;&#35810;&#26500;&#24314;&#22120;&#26469;&#21019;&#24314;&#26597;&#35810;&#12290;<\/p><p>&#25105;&#20204;&#36991;&#20813;&#20351;&#29992;&#21069;&#32512;&#36890;&#37197;&#31526;&#12290;<code>LIKE<\/code>&#26465;&#27454;&#20197;&#25552;&#39640;&#24615;&#33021;&#12290;<\/p><p>&#35831;&#30830;&#20445;&#26367;&#25442;<code>'YourEntity'<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<code>'e'<\/code>&#21644;&#25105;&#26377;&#20160;&#20040;&#20107;&#24773;&#21527;&#65311;<code>'columnName'<\/code>&#35831;&#22312;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#20013;&#20351;&#29992;&#36866;&#24403;&#30340;&#23454;&#20307;&#31867;&#21644;&#21015;&#21517;&#12290;<\/p><h3>&#23433;&#20840;&#32771;&#34385;<\/h3><p>&#23433;&#20840;&#20063;&#26159;&#23454;&#26045;&#36807;&#31243;&#20013;&#30340;&#19968;&#20010;&#20851;&#38190;&#26041;&#38754;&#12290;<code>LIKE<\/code>&#35831;&#30830;&#20445;&#36991;&#20813;SQL&#27880;&#20837;&#28431;&#27934;&#65292;&#36890;&#36807;&#20351;&#29992;&#21442;&#25968;&#32465;&#23450;&#65288;&#22914;&#19978;&#36848;&#31034;&#20363;&#65289;&#32780;&#19981;&#26159;&#30452;&#25509;&#23558;&#36755;&#20837;&#25340;&#25509;&#21040;&#26597;&#35810;&#23383;&#31526;&#20018;&#20013;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p><h3>&#32467;&#35770;&#12290;<\/h3><p>&#29702;&#35299;&#22914;&#20309;&#20351;&#29992;&#23427;&#12290;<code>LIKE<\/code>Doctrine &#25805;&#20316;&#31526;&#22312;&#26377;&#25928;&#21019;&#24314;&#21160;&#24577;&#21644;&#28789;&#27963;&#30340;&#25968;&#25454;&#24211;&#26597;&#35810;&#26041;&#38754;&#36215;&#30528;&#20851;&#38190;&#20316;&#29992;&#12290;&#26412;&#25351;&#21335;&#36890;&#36807;&#35768;&#22810;&#31034;&#20363;&#21521;&#24744;&#23637;&#31034;&#20102;&#22914;&#20309;&#28165;&#27905;&#12289;&#23433;&#20840;&#22320;&#38598;&#25104;LIKE&#25805;&#20316;&#31526;&#21040;&#24744;&#30340;Doctrine&#39537;&#21160;&#30340;&#24212;&#29992;&#31243;&#24207;&#20013;&#12290;&#29616;&#22312;&#65292;&#26377;&#20102;&#36825;&#20123;&#30693;&#35782;&#65292;&#24744;&#21487;&#20197;&#28385;&#24576;&#20449;&#24515;&#21644;&#31934;&#30830;&#24615;&#22320;&#23454;&#26045;&#26356;&#24378;&#22823;&#30340;&#26597;&#35810;&#21151;&#33021;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Doctrine ORM&#65288;&#23545;&#35937;&#20851;&#31995;&#26144;&#23556;&#22120;&#65289;&#20013;&#65292;LIKE &#36816;&#31639;&#31526;&#29992;&#20110;&#26597;&#35810;&#29305;&#23450;&#30340;&#23383;&#31526;&#20018;&#20540;&#65292;&#24182;&#19988;&#21487;&#20197;&#22312;&#22810;&#20010;&#22330;&#21512;&#19979;&#38750;&#24120;&#26377;&#29992;&#12290;&#19979;&#38754;&#25105;&#23558;&#20171;&#32461;&#22914;&#20309;&#22312; Doctrine &#20013;&#27491;&#30830;&#22320;&#20351;&#29992; LIKE &#36816;&#31639;&#31526;&#65292;&#24182;&#25552;&#20379;&#19968;&#20123;&#31034;&#20363;&#12290;<\/p>\n<h3>1. &#23433;&#35013; Doctrine<\/h3>\n<p>&#39318;&#20808;&#30830;&#20445;&#20320;&#30340;&#39033;&#30446;&#24050;&#23433;&#35013;&#20102; Doctrine ORM&#12290;&#22914;&#26524;&#27809;&#26377;&#65292;&#21487;&#20197;&#20351;&#29992; Composer &#26469;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require doctrine\/orm<\/code><\/pre>\n<h3>2. &#21019;&#24314;&#23454;&#20307;&#31867;<\/h3>\n<p>&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>User<\/code> &#30340;&#23454;&#20307;&#31867;&#65292;&#20854;&#20013;&#21253;&#21547;&#20197;&#19979;&#23383;&#27573;&#65306;<\/p>\n<ul>\n<li>id (&#20027;&#38190;)<\/li>\n<li>name (&#29992;&#25143;&#21517;)<\/li>\n<\/ul>\n<pre><code class=\"language-php\">use DoctrineORMMapping as ORM;\n\n\/**\n * User\n *\n * @ORMTable(name=\"users\")\n * @ORMEntity(repositoryClass=\"MyRepository\")\n *\/\nclass User\n{\n    \/**\n     * @var integer $id\n     *\n     * @ORMColumn(name=\"id\", type=\"integer\")\n     * @ORMId\n     * @ORMGeneratedValue(strategy=\"AUTO\")\n     *\/\n    private $id;\n\n    \/**\n     * @var string $name\n     *\n     * @ORMColumn(name=\"name\", type=\"string\", length=50)\n     *\/\n    private $name;\n}<\/code><\/pre>\n<h3>3. &#20351;&#29992; LIKE &#36816;&#31639;&#31526;&#36827;&#34892;&#26597;&#35810;<\/h3>\n<p>&#35201;&#20351;&#29992; LIKE &#36816;&#31639;&#31526;&#65292;&#20320;&#38656;&#35201;&#25351;&#23450;&#26597;&#35810;&#26465;&#20214;&#20013;&#30340;&#23383;&#27573;&#21644;&#20540;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#25105;&#20204;&#35201;&#26597;&#25214;&#25152;&#26377;&#21517;&#31216;&#20197; &#8220;John&#8221; &#24320;&#22836;&#30340;&#29992;&#25143;&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#20570;&#65306;<\/p>\n<pre><code class=\"language-php\">$em = $this-&gt;getDoctrine()-&gt;getManager();\n\n$users = $em-&gt;getRepository('YourProject:User')-&gt;createQueryBuilder('u')\n    -&gt;where('u.name LIKE :search')\n    -&gt;setParameter(':search', '%John%')\n    -&gt;getQuery()\n    -&gt;getResult();<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010; SQL &#26597;&#35810;&#65292;&#23427;&#20250;&#23547;&#25214;&#21517;&#23383;&#24320;&#22987;&#20110; &#8220;John&#8221; &#30340;&#25152;&#26377;&#29992;&#25143;&#12290;&#36890;&#36807;&#20351;&#29992; <code>%<\/code> &#31526;&#21495;&#26469;&#21305;&#37197;&#20219;&#20309;&#38271;&#24230;&#30340;&#23383;&#31526;&#20018;&#65292;&#25105;&#20204;&#21487;&#20197;&#35206;&#30422;&#21333;&#20010;&#23383;&#31526;&#30340;&#25628;&#32034;&#33539;&#22260;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#19979;&#38754;&#26159;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace YourProjectEntity;\n\nuse DoctrineORMMapping as ORM;\n\n\/**\n * User\n *\n * @ORMTable(name=\"users\")\n * @ORMEntity(repositoryClass=\"YourRepository\")\n *\/\nclass User\n{\n    \/**\n     * @var integer $id\n     *\n     * @ORMColumn(name=\"id\", type=\"integer\")\n     * @ORMId\n     * @ORMGeneratedValue(strategy=\"AUTO\")\n     *\/\n    private $id;\n\n    \/**\n     * @var string $name\n     *\n     * @ORMColumn(name=\"name\", type=\"string\", length=50)\n     *\/\n    private $name;\n}\n\n\/\/ Repository.php\nnamespace YourProjectRepository;\n\nuse DoctrineBundleDoctrineBundleRepositoryServiceEntityRepository;\nuse DoctrinePersistenceManagerRegistry;\n\nclass UserRepository extends ServiceEntityRepository\n{\n    public function __construct(ManagerRegistry $registry)\n    {\n        parent::__construct($registry, 'users');\n    }\n\n    \/\/ ...\n}\n\n\/\/ QueryBuilder.php\nnamespace YourProjectRepository;\n\nuse DoctrineORMQueryExprJoin;\nuse DoctrineORMQueryLexer;\nuse DoctrineORMQueryParser;\nuse DoctrineORMQuerySQL;\n\nclass QueryBuilder\n{\n    public static function buildSelect(User $user): SQL\n    {\n        return new SQL(\n            \"\n                SELECT u.id AS id,\n                       u.name AS name\n               FROM users u\n               WHERE u.name LIKE :search\n            \",\n            [\n                ':search' =&gt; \"%$user-&gt;getName()%\"\n            ]\n        );\n    }\n\n    public static function buildFromJoin(User $user): SQL\n    {\n        $queryBuilder = self::buildSelect($user);\n\n        $queryBuilder-&gt;from('Users', 'u');\n\n        if ($user instanceof User) {\n            $queryBuilder-&gt;leftJoin('u.roles', 'r');\n            $queryBuilder-&gt;addOrderBy('r.name', 'ASC');\n        } else {\n            $queryBuilder-&gt;leftJoin('u', 'r');\n            $queryBuilder-&gt;addOrderBy('r.name', 'ASC');\n        }\n\n        return $queryBuilder;\n    }\n}<\/code><\/pre>\n<p>&#36825;&#20010;&#31034;&#20363;&#23637;&#31034;&#20102;&#22914;&#20309;&#20351;&#29992; Doctrine ORM &#22312;&#25968;&#25454;&#24211;&#20013;&#25191;&#34892;&#24102;&#26377; LIKE &#25628;&#32034;&#26465;&#20214;&#30340;&#26597;&#35810;&#12290;&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#24744;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#36731;&#26494;&#22320;&#23545;&#25968;&#25454;&#34920;&#36827;&#34892;&#39640;&#32423;&#26597;&#35810;&#65292;&#36825;&#22312;&#22823;&#22411;&#24212;&#29992;&#31243;&#24207;&#20013;&#38750;&#24120;&#37325;&#35201;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Doctrine &#20013;&#20351;&#29992; LIKE &#36816;&#31639;&#31526;&#26159;&#22788;&#29702;&#25968;&#25454;&#24211;&#26597;&#038;#35..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1117","my1js","type-my1js","status-publish","hentry","my1js2nav-symfony"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/1117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=1117"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1117"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1117"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}