SQL WHERE CLAUSE中的IF和ELSE

时间:2015-11-04 16:17:59

标签: php mysql

我需要一个sql查询来首先检查匹配WHERE列是否为X1的eqaul,如果此处不匹配,则搜索每一行。

这是我当前的SQL语句:

SELECT name, image_url FROM `".$config_databaseTablePrefix."products` WHERE name LIKE '$queryString%' LIMIT $numberOfProducts

但是我需要它来检查匹配,例如columnName = XX,如果找不到匹配,则查看所有其他行。

我怎样才能做到这一点?

2 个答案:

答案 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

引用