简体   繁体   English

有没有办法忽略和接受整理?

[英]Is there a way to ignore and accept collate?

I have a problem with a SQL request :我的 SQL 请求有问题:

SELECT  CLCLEUNIK, NOM, VILLE, CODEP 
FROM CLIENT 
WHERE NOM LIKE :nom COLLATE French_CI_AI

In my case, I use the collate because a user can search "rhone" and it will find "rhône".就我而言,我使用整理,因为用户可以搜索“rhone”,它会找到“rhône”。 But my problem is that now when someone searches "Rhône", the request doesn't find any match in my database.但我的问题是,现在当有人搜索“Rhône”时,该请求在我的数据库中找不到任何匹配项。


Edit : this is the creation of the base :编辑:这是基础的创建:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[CLIENT](


    [NOM] [varchar](50) NULL,
    [ADRESSE] [text] NULL,
    [CODEP] [varchar](5) NULL,
    [VILLE] [varchar](40) NULL,
    [TYPECLI] [int] NULL,
    [TEL] [varchar](20) NULL,



) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

This is the php code :这是php代码:

 public function searchCli(Request $request){
        require __DIR__.DIRECTORY_SEPARATOR."..".DIRECTORY_SEPARATOR."Entity".DIRECTORY_SEPARATOR."sqlconnect.php";


          $nom = $request->request->has("nom") ? $request->request->get("nom") : "";
          $nom = str_replace(" ", "%", $nom);


          $req ="SELECT  CLCLEUNIK, NOM, VILLE, CODEP FROM CLIENT WHERE NOM LIKE :nom COLLATE French_100_CI_AI";
          $prepare = $pdo->prepare($req);
          $prepare->execute(
            [
              "nom" => "%{$nom}%"
            ]
          );



          $clientsrecherche = $prepare->fetchAll(PDO::FETCH_OBJ);

          foreach($clientsrecherche as $key => $objet){
            foreach($objet as $key2 => $obj){
              $obj=utf8_encode($obj);
              $response[$key][$key2] = $obj;
            };
          }                     
            return new JsonResponse([ "response" => $response]);
       }

It's all I can have to help这是我所能提供的帮助

For more description:更多描述:

collation properties:整理属性:

CI specifies case-insensitive (case insensitive comparisons so 'ABC' would equal 'abc') CI指定不区分大小写(不区分大小写的比较,因此 'ABC' 将等于 'abc')

CS specifies case-sensitive CS指定区分大小写

AS specifies accent-sensitive (accent sensitive, so 'ü' does not equal 'u') AS指定重音敏感(重音敏感,所以 'ü' 不等于 'u')

AI specifies accent-insensitive AI指定不区分重音

You can try French_100_CI_AI instead of French_CI_AI你可以试试French_100_CI_AI而不是French_CI_AI

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM