我需要一个sql查询来首先检查匹配WHERE列是否为X1的eqaul,如果此处不匹配,则搜索每一行。
这是我当前的SQL语句:
SELECT name, image_url FROM `".$config_databaseTablePrefix."products` WHERE name LIKE '$queryString%' LIMIT $numberOfProducts
但是我需要它来检查匹配,例如columnName = XX,如果找不到匹配,则查看所有其他行。
我怎样才能做到这一点?
答案 0 :(得分:0)
您可以使用:
// requires a hexstring length of 8 or more sophisticated logic
char *hexstring = "08fc0021";
int len = strlen(hexstring);
char varA[5], varB[5];
for(int i = 0; i<len; i++)
{
if(i < 4) varA[i] = hexstring[i];
else varB[i-4] = hexstring[i];
}
varA[4] = varB[4] = '\0';
int varAi, varBi;
sscanf(varA, "%x", &varAi);
sscanf(varB, "%x", &varBi);
printf("varAi = 0x%x = %d\n", varAi, varAi);
printf("varBi = 0x%x = %d\n", varBi, varBi);
答案 1 :(得分:0)
正如评论中所提到的,首先尝试修复sql注入,然后尝试这样的事情
IF (SELECT 1 = 1 FROM table
WHERE name LIKE 'queryString%' ) THEN
BEGIN
SELECT name, image_url
FROM table
WHERE name LIKE '$queryString%'
LIMIT $numberOfProducts;
END;
ELSE
BEGIN
SELECT name, image_url
FROM table
LIMIT $numberOfProducts
END;
END IF;
从此answer
引用