J'utilise JSL pour récupérer des données d'une base de données MySQL. Cependant, j'ai rencontré un problème où les conditions de filtrage dans ma requête SQL ne sont pas sensibles à la casse par défaut. Cela signifie que les résultats renvoyés sont les mêmes quelle que soit la casse de la valeur du filtre.
Voici les deux scripts qui produisent les mêmes résultats :
Scénario 1 :
New SQL Query(
Version( 130 ),
Connection(
"ODBC:DATABASE=my_database;DSN=my_dsn;PORT=3306;PWD=my_password;SERVER=localhost;UID=my_user;"
),
QueryName( "test_data" ),
Select(
Column( "Column1", "t1" ),
Column( "Column2", "t1" ),
Column( "Column3", "t1" )
),
From( Table( "test_data", Alias( "t1" ) ) ),
Where(
Not Or(
In List(
Column( "Column1", "t1" ),
{"A"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
)
)
) << Run;
Scénario 2 :
New SQL Query(
Version( 130 ),
Connection(
"ODBC:DATABASE=my_database;DSN=my_dsn;PORT=3306;PWD=my_password;SERVER=localhost;UID=my_user;"
),
QueryName( "test_data" ),
Select(
Column( "Column1", "t1" ),
Column( "Column2", "t1" ),
Column( "Column3", "t1" )
),
From( Table( "test_data", Alias( "t1" ) ) ),
Where(
Not Or(
In List(
Column( "Column1", "t1" ),
{"a"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
)
)
) << Run;
How can I modify the New SQL Query function in my JSL scripts to make the filtering conditions case-sensitive?
Merci pour votre aide!
Quelqu'un de JMP le sait probablement mieux, mais savez-vous à quoi ressemble la requête SQL ? Je pense que vous pouvez le voir en convertissant en SQL personnalisé

Et comment est configurée votre base de données ? Si vous exécutez votre requête dans une autre application, obtenez-vous les mêmes résultats ? Je ne suis pas familier avec MySQL mais peut-être que ceux-ci ne sont pas sensibles à la casse par défaut https://dev.mysql.com/doc/refman/8.4/en/case-sensitivity.html
L'instruction SQL est similaire à ceci :
SELECT t1.`Column1`, t1.`Column2`, t1.`Column3`
FROM test_data t1
WHERE ( NOT ( ( ( t1.`Column1` IN ( 'A' ) ) ) ) ) ;
I know that adding the BINARY keyword in SQL can enforce case sensitivity, for example:
SELECT `Column1`, `Column2`, `Column3`
FROM `test_data` AS `t1`
WHERE BINARY `Column1` NOT IN ('A');And using the open Database function, I can execute SQL statements directly. However, I am particularly interested in whether the New SQL Query function in JSL can achieve the same case-sensitive effect.
Merci pour votre aide!
Je pense que vous devrez peut-être ajouter une expression personnalisée pour gérer des situations comme celle-là

ou


Got it, that would be similar to referencing SQL statements in open Databasefonction. Merci!