Объединение имени и использование concat снова для имени пользователя? - PullRequest
1 голос
/ 10 января 2012

Я пытаюсь извлечь информацию из базы данных с помощью PHP и получить следующий запрос:

$q = "SELECT CONCAT_WS(' ',FirstName,MiddleName,LastName) AS Name,
      (NewCustomerID) AS customerid,
      substring('Firstname',1,1, 'MiddleName'),
      left(MiddleName,1) AS MN,
      (LastName) AS LN
       FROM customer 
       Where FN.MN.LN = 'username'"; 
$r = mysqli_query ($dbc, $q);
$num = mysqli_num_rows($r);

, когда я запускаю это, я получаю информацию, но не имя пользователя, которое мне нужно:

$q = "SELECT CONCAT_WS(' ',FirstName,MiddleName,LastName) AS Name,
      (NewCustomerID) AS customerid,
      left('Firstname',1) as FN,
      left(MiddleName,1) AS MN,
      (LastName) AS LN 
            FROM customer".

Просто застрял, перепробовал немало вещей и просто не может заставить его работать.

Ответы [ 3 ]

1 голос
/ 10 января 2012

Поскольку FN, MN и LN являются псевдонимами, вам необходимо использовать HAVING вместо WHERE.

HAVING FN.MN.LN = 'username'

Хотя, FN.MN.LN - синтаксическая ошибка, я полагаю, вы имели в виду CONCAT(FN,MN,LN)?

HAVING CONCAT(FN,MN,LN) = 'username'
0 голосов
/ 16 февраля 2012
$q = "SELECT CONCAT(left(FirstName,1),left(MiddleName,1),LastName) AS UserName, CONCAT_WS(' ',LastName,FirstName) AS Name, (NewCustomerID) AS customerid FROM customer ";
0 голосов
/ 10 января 2012

Вы не правильно цитируете запрос, Имя - это имя столбца:

SELECT 
    CONCAT_WS(' ',FirstName,MiddleName,LastName) AS Name,
    (NewCustomerID) AS customerid,
    LEFT(Firstname,1) as FN, 
    LEFT(MiddleName,1) AS MN,
    (LastName) AS LN
FROM customer
WHERE CONCAT(FN,MN,LN) = 'username'
...